#include <stdio.h>
int fact(int *num);
int main(void) {
int num = 5;
int result = fact(&num);
printf("Factorial = %d", result);
return 0;
}
int fact(int *num) {
int factres;
int numVal = *num;
if (numVal == 1) {
return 1;
}
factres = *num * fact(&numVal - 1);
return factres;
}
Я учусь использовать указатели и функции в C и написал приведенный выше код, чтобы найти факториал числа. Насколько я могу судить, код кажется нормальным. Я объявил функцию с аргументами целочисленных указателей и определил ее ниже основной. Я передаю адрес переменной в вызове функции для расчета факториала. Куда я иду не так? Я получаю Factorial = 0
в качестве вывода.