我正在使用cygwin gcc 4.5.3版来编译以下代码。
/* recursion.c */
int factorial_aux(int n, int t) {
if (n <= 1) {
return t;
} else {
return factorial_aux(n-1, n*t);
}
}
int factorial(int n) {
factorial_aux(n, 1);
}
int main() {
int result = factorial(4);
printf("%d\n", result);
}
使用以下代码运行程序编译:{{1}}打印24,但使用gcc recursion.c -o recursion.exe
编译的打印为0。
有人能告诉我为什么会有不同的结果吗?任何可能的方法来解决它?
谢谢!
答案 0 :(得分:1)
您的factorial
功能缺少某些功能。它没有return
任何东西。