Функция вычисления факториала выводит неправильные значения - 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 - Возвращаем полученное значение факториала
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д