Как зациклить запрос на ввод пользователем верных данных? - 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();
}

Объяснение кода листинга программы

  1. Объявлены функции factorial(n) и main().
  2. В функции main() объявлена переменная n типа int.
  3. Выводится сообщение с просьбой ввести число, для которого необходимо вычислить факториал.
  4. Используется функция scanf() для ввода числа в переменную n.
  5. Проверка: если число больше или равно нулю, то вычисляется и выводится факториал числа.
  6. Используется цикл while для проверки: если число меньше нуля, то выводится сообщение об ошибке, предложение проверить ввод и цикл начинается заново.
  7. После выхода из цикла вычисляется и выводится факториал числа.
  8. В функции factorial(n) объявлены переменные i и f типа int.
  9. Используется цикл for для вычисления факториала числа n.
  10. Переменная f инициализируется единицей.
  11. Внутри цикла for переменная f умножается на текущее значение i.
  12. Функция factorial(n) возвращает значение переменной f.
  13. В функции main() используется функция printf() для вывода сообщения и вызова функции factorial().
  14. Используется функция scanf() для ввода числа.
  15. После выхода из цикла while выводится факториал числа.
  16. В функции main() используется функция getch() для приостановки выполнения программы и получения ввода пользователя.
  17. В функции factorial(n) объявлены две переменные типа int.
  18. В функции main() используется функция printf() для вывода сообщения об ошибке.
  19. В функции main() используется цикл while.
  20. После выхода из цикла while выводится факториал числа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы