-4
如何解决此问题,使其不会产生循环?为什么它会创建一个增量而不是递减的循环?为什么此C代码创建以分段错误结束的循环
#include <stdio.h>
int factorial(int input)
{
return input * factorial(input-1);
}
int main()
{
printf("%d", factorial(23));
return 0;
}
添加结束条件 –
这个程序确实有一个“循环”本身。你被困在一个无限的递归调用中。你需要添加一个“基本情况”递归函数,所以最终该函数返回到调用函数 – JackVanier
正如大家说的。当'input'小于1时,你想结束递归。 –