发布网友 发布时间:2022-04-01 17:41
共3个回答
热心网友 时间:2022-04-01 19:10
当n=3时 就执行f=fac(n-1)*n 即f=fac(2)*3 然后再执行fac(2) 即f=fac(1)*2综合起来 就是fac(1)*2*3 现在当n=1的时候,就会执行if(n<=1) print"Error"这句话了 而又因为fac是个函数 有返回值 此时就会报错了。。。我帮你对这个程序进行改进了
int fac(int n)
{ if(n<=1)
//printf "Error";
return 1;
else return fac(n-1)*n;
} 如果还有什么不懂的可以来问我哈
热心网友 时间:2022-04-01 20:28
要知道,你写的函数是有问题的。大概应该是这样吧int fac(int n){ if(n<=1) return 1; else fac(n-1)*n; } 如果是这样的话,过程应该是n=3 f(2)*3;n=2 f(1)*2n=1 1 结果就是1*2*3=6
热心网友 时间:2022-04-01 22:03
error告诉你是错误的意思。它说如果n小于等于1就是错误的。所以当n=3时就可以进行下一个步骤了啊!所以最后就是对的啊!