Вывести YES, если есть два соседних элемента массива с одинаковыми знаками - C (СИ)
Формулировка задачи:
Программа должна вывести YES, если есть два соседних элемента с одинаковыми знаками, и NO – иначе.
Вот мое решение:
Выдается неправильный ответ,когда нет последовательных чисел одинакового знака .
#include <stdio.h> int main(void) { int i,n,a; a=0; scanf("%d",&n); int arr[n]; for (i=0;i<n;i++) scanf ("%d",&arr[i]); for (i=0;i<n;i++) { if (((arr[i]>0)&&(arr[i+1]>0))||((arr[i]<0)&&(arr[i+1]<0))) a=1; else a=0; } if (a==1) printf("YES"); else printf("NO"); return 0; }
Решение задачи: «Вывести YES, если есть два соседних элемента массива с одинаковыми знаками»
textual
Листинг программы
a=0; for (i=0;i<n-1;i++) { if (arr[i]*arr[i+1]<0) { a=1; break; } }
Объяснение кода листинга программы
- Переменная
a
инициализируется значением 0. - Происходит цикл по элементам массива
arr
от индекса 0 до n-2. - Внутри цикла проверяется условие: произведение текущих и следующего элементов массива меньше нуля.
- Если условие выполняется, то переменной
a
присваивается значение 1 и цикл прерывается командойbreak
. - После завершения цикла выводится значение переменной
a
. - Если значение переменной
a
равно 1, то выводится словоYES
, иначе выводится словоNO
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д