Проверка на ввод числа - C (СИ) (74015)
Формулировка задачи:
Задание:вычислить факториал.
Подскажите пожалуйста почему когда ввожу символ или отрицательное число программа не выдаёт ничего
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
unsigned int n, i, x = 1;
printf("Vvedite n ");
if (scanf("%i", &n) != 1)
{
printf("Введены неверные данные…\n ");
system("pause");
exit(0);
}
else
for (i = 1; i <= n; i++) x=x*i;
printf("Result: %i", x);
getch();
}Решение задачи: «Проверка на ввод числа»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int n, i, x = 1 ,y;
printf("Vvedite n ");
y=scanf("%i", &n);
if (y!=1 || n <0)
{
printf("Incorrect data\n ");
exit(0);
}
else
for (i = 1; i <= n; i++) x=x*i;
printf("Result: %i", x);
}
Объяснение кода листинга программы
Объяснение:
- Включаем необходимые библиотеки:
- stdio.h используется для работы с вводом/выводом данных;
- stdlib.h используется для работы с памятью и алгоритмами;
- math.h используется для работы с математическими функциями.
- Определяем переменные:
- n - счётчик, который будет использоваться в цикле;
- i - счётчик, который будет использоваться в цикле;
- x - значение, которое будет умножаться на счётчик;
- y - используется для получения введённого значения.
- Выводим запрос на ввод числа:
- Выводим сообщение
Vvedite n.
- Выводим сообщение
- Считываем число:
- Используем функцию scanf() для считывания введённого значения в переменную n.
- Проверяем корректность введённого значения:
- Используем условный оператор if для проверки значения переменной y (которая возвращается функцией scanf()). Если значение y не равно 1 или число меньше нуля, то выводим сообщение об ошибке и завершаем программу.
- Выполняем цикл:
- Используем цикл for для выполнения операции умножения x на счётчик от 1 до n.
- Выводим результат:
- Выводим сообщение
Result:и значение переменной x. Таким образом, данный код выполняет следующие действия:
- Выводим сообщение
- Запрашивает у пользователя ввод числа.
- Проверяет корректность введённого значения.
- Выполняет цикл, в котором значение переменной x умножается на счётчик от 1 до введённого числа.
- Выводит результат умножения.