Определить, состоит ли вводимая последовательность только из чисел, удовлетворяющих условию - C (СИ)
Формулировка задачи:
С клавиатуры вводятся числа. Признак конца ввода – ноль. Определить, состоит ли вводимая последовательность только из чисел, удовлетворяющих условию: a[0;55].
я так понял, что он в конце обрабатывает, только 0 принадлежит он или нет. как сделать чтобы он все введенные цифры обработал, перед тем как дать ответ
#include <stdio.h>
int main()
{
float a;
do
{
printf("\n Vvedite chislo , ili vvedite 0 dlya okonchania operacii ");
scanf("%f", &a);
}
while(a!=0);
if((55>=a)&&(a>0))
{
puts("chisla prinadlezhat");
}
else
{
puts("ne prinadlezhat");4
}
return 0;
}Решение задачи: «Определить, состоит ли вводимая последовательность только из чисел, удовлетворяющих условию»
textual
Листинг программы
#include <stdio.h>
int main(void) {
int n, fail = 0;
while ( printf("Number: ") && scanf("%d", &n) == 1 && n != 0 )
fail |= ( n < 0 || n > 55 );
printf("%s\n", ( fail ) ? "FAIL" : "OK");
return 0;
}
Объяснение кода листинга программы
- Включаем стандартную библиотеку файлов в программу
- Объявляем переменные: n (для считывания вводимого числа), fail (для отслеживания ошибок), 0 (для инициализации fail)
- Запускаем цикл while, который будет выполняться до тех пор, пока:
- Выводится приглашение для ввода числа
Number: - Считывается число (в переменную n)
- n не равно нулю
- Выводится приглашение для ввода числа
- Внутри цикла проверяем, является ли считанное число отрицательным или больше 55 (то есть не удовлетворяет условию), и если да, то устанавливаем соответствующий бит в переменной fail
- После выхода из цикла while выводится сообщение
OKилиFAILв зависимости от значения переменной fail - Возвращаем 0, чтобы указать, что программа успешно завершилась