Функция вычисления факториала выводит неправильные значения - 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;
}
Cам писал, хочу понять в чем моя ошибка. Если ответите, буду очень рад!

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

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

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

  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
Похожие ответы