Неправильный результат факториала - C (СИ)

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

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

Вот код программки - просто тестирую среду программирования VС 2005++ Вроде все правильно но результат каждый раз то в 6 то в 7 раз больше нужного. Вопрос, что то со средой программирования или я, что-то упускаю.
#include "stdio.h"
int fact(int z);
int fact(int z){
    if (z==0){
    printf("Konec\n");
    }
    else{
    return z*fact(z-1);
    }
}
 
int _tmain()
{int q;
 int z=6;
 printf("%d",fact(z));
 scanf("%d",q);
 return 0;
}

Решение задачи: «Неправильный результат факториала»

textual
Листинг программы
#include "stdio.h"
int fact(int z);
int fact(int z){
        if (z==0){
        printf("Konec\n");
        return 1;
        }
        else{
        return z*fact(z-1);
        }
}
 
int _tmain()
{int q;
 int z=6;
 printf("%d",fact(z));
 scanf("%d",q);
 return 0;
}

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

  1. Включаем библиотеку stdio.h, которая содержит функции для ввода и вывода данных.
  2. Определяем функцию fact(int z), которая будет вычислять факториал числа.
  3. Внутри функции fact(int z), если число z равно 0, то выводим сообщение Konec и возвращаем 1.
  4. Внутри функции fact(int z), если число z не равно 0, то возвращаем произведение числа z и результата вызова функции fact(z-1).
  5. В функции main(), задаём значение переменной z равным 6.
  6. Вызываем функцию fact(z) и выводим её результат на экран.
  7. Считываем с помощью функции scanf() значение переменной q.
  8. Возвращаем 0, чтобы указать, что программа успешно завершилась.

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


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

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

7   голосов , оценка 3.857 из 5
Похожие ответы