Что за условие в скобках - C (СИ)
Формулировка задачи:
while(1 != scanf("%d", &n))Решение задачи: «Что за условие в скобках»
textual
Листинг программы
#include <stdio.h>
int main()
{
int N=10, n, largest, prelargest, count = 0;
while(count < N)
{
while(1 != scanf("%d", &n))
{
puts("Incorrect entering data!Try again.");
while(getchar() != '\n');
}
if(count==0)
{
largest = prelargest = n;
}
else{
if(n > largest)
{
prelargest = largest;
largest = n;
}
else
{
if(count == 1)
prelargest = n;
if(n > prelargest)
prelargest = n;
}
}
count++;
}
printf("\nLargest = %d Prelargest = %d\n", largest, prelargest);
return 0;
}
Объяснение кода листинга программы
- Объявлены переменные: N, n, largest, prelargest, count. N - количество вводимых чисел, n - текущее вводимое число, largest и prelargest - для хранения наибольшего и предыдущего наибольшего числа соответственно, count - счетчик вводимых чисел.
- В цикле while(count < N) происходит ввод чисел от пользователя с помощью scanf и проверка корректности ввода с помощью условия while(1 != scanf(
%d, &n)). Если ввод некорректен, выводится сообщение об ошибке и с помощью while(getchar() != '\n') удаляется символ новой строки из буфера ввода. - Если count == 0, то largest и prelargest устанавливаются равными введенному числу n.
- В остальных случаях, если n больше largest, то prelargest становится равным largest, а largest становится равным n. Если n меньше или равно largest, то prelargest становится равным n.
- После окончания цикла выводятся значения largest и prelargest.
- Возвращается 0, что означает успешное завершение программы.