Неправильный результат факториала - 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; }
Объяснение кода листинга программы
- Включаем библиотеку
stdio.h
, которая содержит функции для ввода и вывода данных. - Определяем функцию fact(int z), которая будет вычислять факториал числа.
- Внутри функции fact(int z), если число z равно 0, то выводим сообщение
Konec
и возвращаем 1. - Внутри функции fact(int z), если число z не равно 0, то возвращаем произведение числа z и результата вызова функции fact(z-1).
- В функции main(), задаём значение переменной z равным 6.
- Вызываем функцию fact(z) и выводим её результат на экран.
- Считываем с помощью функции scanf() значение переменной q.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д