c语言自定义函数返回值错误,求助

2024-10-31 20:18:23
推荐回答(1个)
回答1:

有 else 是
只有 n == 0 return jcjg;返回jcjg 否则不确定返回何值(实际返回 eax 寄存器的最后一次值)
没有 else 任何时候 return jcjg;总是会返回jcjg。
不过没见过这样用递归的,
像这种简单计算,正常都是用迭代处理,不用递归的;
只有像树一类的复杂的数据结构,和排序或更复杂的算法,才用递归实现.
int jc(int n)
{
if(n != 0)
{
printf("%d-%d\n",jcjg,n);
jcjg = jcjg * n;
//jc(n - 1);改成
return jc(n - 1);看行不行;
}
else
{
return jcjg;
}
}