Положительная последовательность - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Положительная последовательность Будем называть последовательность положительной, если все числа последовательности положительны. Входные данные: Целочисленная последовательность произвольной длины, заканчивающаяся числом −9999 Выходные данные: YES -- если последовательность положительная, NO в противном случае (последовательность не положительная или в последовательности отсутствуют числа. Sample Input 1: 192 329 842 -432 382 912 -9999 Sample Output 1: NO Sample Input 2: 13 483 759 120 883 793 223 1129 988 747 554 829 12 84 12 833 -9999 Sample Output 2: YES Никак не могу избавиться от считывания последнего числа, которое завершает последовательность, поэтому получается некорректный ответ.
#include 
 
int main() {
    int number;
    while(number != -9999)
    {
        scanf("%d", &number);
    }
    (number > 0) ? printf("YES") : printf("NO");
    return 0;
}

Решение задачи: «Положительная последовательность»

textual
Листинг программы
#include <stdio.h>
 
int main (void)
{
    int n;
    int a = 1;
    do{
        scanf("%d", &n);
        if (n != -9999 && n < 0) a = 0;
    }while (n != -9999);
    printf("%s\n", (a)? "YES" : "NO");
    return 0;
}

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

В этом коде:

  1. Объявлены две переменные: n и a.
  2. Переменная a инициализируется значением 1.
  3. Запускается цикл do-while, который выполняется до тех пор, пока пользователь не введет -9999 (значение, которое обычно используется для обозначения конца ввода).
  4. Внутри цикла происходит следующее:
    • Пользователю предлагается ввести число.
    • Если введенное число не равно -9999 и меньше нуля, то значение переменной a меняется на 0.
  5. После завершения цикла выводится сообщение YES, если значение переменной a равно 1, и NO, если оно равно 0.
  6. Программа возвращает 0, что обычно означает успешный конец работы программы.

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

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