Вывести 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;
        }
    }

Объяснение кода листинга программы

  1. Переменная a инициализируется значением 0.
  2. Происходит цикл по элементам массива arr от индекса 0 до n-2.
  3. Внутри цикла проверяется условие: произведение текущих и следующего элементов массива меньше нуля.
  4. Если условие выполняется, то переменной a присваивается значение 1 и цикл прерывается командой break.
  5. После завершения цикла выводится значение переменной a.
  6. Если значение переменной a равно 1, то выводится слово YES, иначе выводится слово NO.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы