Почему зацикливаеться while ? - C (СИ)
Формулировка задачи:
Функция scanf() возвращает количество успешно прочитанных символов..
если в данном коде ввести НЕ число программа должна повторить цикл. так и есть но при повторном выполнении кода в цикле ф-ия scanf не выполняется ... ПОЧЕМУ идет зацикливание !!!__ ,??
do{ printf ("VVedite nomer\n"); }while (!scanf ("%i",&i));
Решение задачи: «Почему зацикливаеться while ?»
textual
Листинг программы
int n, i; char s[300]; do { printf ("Vvedite nomer:"); n=scanf ("%i",&i); if(!n) gets(s); }while(!n); printf ("%d",i);
Объяснение кода листинга программы
- Объявлены две переменные:
n
иi
. - Введен цикл
do
, который будет выполняться до тех пор, пока условие вwhile
не станет ложным. - Внутри цикла выводится сообщение
Vvedite nomer:
и происходит чтение введенного числа в переменнуюi
с помощью функцииscanf
. - Если чтение числа не удалось (то есть
n
равно 0), то с помощью функцииgets
считывается строка, которую программа использует как строку-заполнитель. - После выхода из цикла
do
, выводится значение переменнойi
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д