找出错误,只改 found 下一行,答案点击按钮展开
函数 rfact 用递归求 n 的阶乘。请改正 found 标记处的 2 处错误。
#include <stdio.h>
long rfact(int n)
{
/**********found**********/
if(n = 1) return 1;
/**********found**********/
return n * rfact(n);
}
int main()
{
printf("%ld\n", rfact(5));
return 0;
}
if(n == 1) return 1;
return n * rfact(n - 1);
第1处应判断 n==1(= 是赋值恒为真,直接返回 1);第2处递归应传 n-1(传 n 不收敛会栈溢出)。rfact(5) 应输出 120。