Функция вычисления факториала выводит неправильные значения - C (СИ)
Формулировка задачи:
Ошибки компилятор не выдает.
А вот текст программы:
Cам писал, хочу понять в чем моя ошибка.
Если ответите, буду очень рад!
Листинг программы
- #include "stdafx.h"
- #include "conio.h"
- int factorial(int x)
- {
- for (int i = 1; i < x; i++)
- x = x*i;
- return x;
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- int a;
- printf("vvedite chislo\n");
- scanf_s("%d",&a);
- printf("factorialchik=%d", factorial(a) * 1);
- _getch();
- return 0;
- }
Решение задачи: «Функция вычисления факториала выводит неправильные значения»
textual
Листинг программы
- int factorial(int x)
- {
- for (int i = x-1; i>=2; i--)
- x = x*i;
- return x;
- }
Объяснение кода листинга программы
- Передаем в функцию
factorial
значениеx
- Инициализируем переменную
i
значениемx-1
- Запускаем цикл
for
, который выполняется, пока значениеi
больше или равно 2 - Внутри цикла умножаем значение
x
на значениеi
и присваиваем результат переменнойx
- После окончания цикла возвращаем значение переменной
x
- Если значение
x
меньше или равно 2, то факториал равен 1 - Если значение
x
больше 2, то вычисляем факториал путем последовательного умножения всех целых чисел отx-1
до 2 - Возвращаем полученное значение факториала
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д