Как зациклить запрос на ввод пользователем верных данных? - C (СИ)
Формулировка задачи:
Здравствуйте, вопрос такой: "Как в следующей программе зациклить запрос на ввод пользователем верных данных? Чтобы пока юзер не введет верное число, программа не переставала его об этом просить?" Код ниже. Заранее спасибо
#include "stdafx.h" #include <stdio.h> #include <iostream.h> #include <conio.h> //funkciya factorial(n) int factorial(int n) { int i,f; //f - factorial chisla n for(i=1,f=1;i<=n;i++) f*=i; return f; }; //glavnaya funkciya int main() { int n; //chislo printf("Vvedite chislo, factorial kotorogo nado vychislit\'\n"); scanf("%d",&n); if (n>=0) printf("%d! = %d\n",n,factorial(n)); while (n < 0) { printf("Kernel panic!Bad value! Prover\'te vvod\n\n"); printf("Vvedite chislo, factorial kotorogo nado vychislit\'\n"); scanf("%d",&n); printf("%d! = %d\n",n,factorial(n));} getch(); }
Решение задачи: «Как зациклить запрос на ввод пользователем верных данных?»
textual
Листинг программы
#include "stdafx.h" #include <stdio.h> #include <iostream.h> #include <conio.h> //funkciya factorial(n) int factorial(int n) { int i,f; //f - factorial chisla n for(i=1,f=1;i<=n;i++) f*=i; return f; }; //glavnaya funkciya int main() { int n; //chislo printf("Vvedite chislo, factorial kotorogo nado vychislit\'\n"); scanf("%d",&n); if (n>=0) printf("%d! = %d\n",n,factorial(n)); while (n < 0) { printf("Kernel panic!Bad value! Prover\'te vvod\n\n"); printf("Vvedite chislo, factorial kotorogo nado vychislit\'\n"); scanf("%d",&n); } printf("%d! = %d\n",n,factorial(n)); getch(); }
Объяснение кода листинга программы
- Объявлены функции
factorial(n)
иmain()
. - В функции
main()
объявлена переменнаяn
типаint
. - Выводится сообщение с просьбой ввести число, для которого необходимо вычислить факториал.
- Используется функция
scanf()
для ввода числа в переменнуюn
. - Проверка: если число больше или равно нулю, то вычисляется и выводится факториал числа.
- Используется цикл
while
для проверки: если число меньше нуля, то выводится сообщение об ошибке, предложение проверить ввод и цикл начинается заново. - После выхода из цикла вычисляется и выводится факториал числа.
- В функции
factorial(n)
объявлены переменныеi
иf
типаint
. - Используется цикл
for
для вычисления факториала числаn
. - Переменная
f
инициализируется единицей. - Внутри цикла
for
переменнаяf
умножается на текущее значениеi
. - Функция
factorial(n)
возвращает значение переменнойf
. - В функции
main()
используется функцияprintf()
для вывода сообщения и вызова функцииfactorial()
. - Используется функция
scanf()
для ввода числа. - После выхода из цикла
while
выводится факториал числа. - В функции
main()
используется функцияgetch()
для приостановки выполнения программы и получения ввода пользователя. - В функции
factorial(n)
объявлены две переменные типаint
. - В функции
main()
используется функцияprintf()
для вывода сообщения об ошибке. - В функции
main()
используется циклwhile
. - После выхода из цикла
while
выводится факториал числа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д