Функция вычисления факториала выводит неправильные значения - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ошибки компилятор не выдает. А вот текст программы:
Листинг программы
  1. #include "stdafx.h"
  2. #include "conio.h"
  3. int factorial(int x)
  4. {
  5. for (int i = 1; i < x; i++)
  6. x = x*i;
  7. return x;
  8. }
  9. int _tmain(int argc, _TCHAR* argv[])
  10. {
  11. int a;
  12. printf("vvedite chislo\n");
  13. scanf_s("%d",&a);
  14. printf("factorialchik=%d", factorial(a) * 1);
  15. _getch();
  16. return 0;
  17. }
Cам писал, хочу понять в чем моя ошибка. Если ответите, буду очень рад!

Решение задачи: «Функция вычисления факториала выводит неправильные значения»

textual
Листинг программы
  1. int factorial(int x)
  2. {
  3.     for (int i = x-1; i>=2; i--)
  4.         x = x*i;
  5.     return x;
  6. }

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

  1. Передаем в функцию factorial значение x
  2. Инициализируем переменную i значением x-1
  3. Запускаем цикл for, который выполняется, пока значение i больше или равно 2
  4. Внутри цикла умножаем значение x на значение i и присваиваем результат переменной x
  5. После окончания цикла возвращаем значение переменной x
  6. Если значение x меньше или равно 2, то факториал равен 1
  7. Если значение x больше 2, то вычисляем факториал путем последовательного умножения всех целых чисел от x-1 до 2
  8. Возвращаем полученное значение факториала

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


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

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

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы