Положительная последовательность - 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
Никак не могу избавиться от считывания последнего числа, которое завершает последовательность, поэтому получается некорректный ответ.
#includeint 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; }
Объяснение кода листинга программы
В этом коде:
- Объявлены две переменные:
n
иa
. - Переменная
a
инициализируется значением 1. - Запускается цикл
do-while
, который выполняется до тех пор, пока пользователь не введет-9999
(значение, которое обычно используется для обозначения конца ввода). - Внутри цикла происходит следующее:
- Пользователю предлагается ввести число.
- Если введенное число не равно
-9999
и меньше нуля, то значение переменнойa
меняется на 0.
- После завершения цикла выводится сообщение
YES
, если значение переменнойa
равно 1, иNO
, если оно равно 0. - Программа возвращает 0, что обычно означает успешный конец работы программы.