c语言的函数递归

来源:百度知道 编辑:UC知道 时间:2024/05/04 22:34:27
double fun(int n)
{if (n==1) return 1;
else return n*fun(n-1);
}
main()
{int n;
double s;
scanf("%d",&n);
s=fun(n);
printf("%if",s);
}
输入5
请问n=5时执行else语句return n*fun(n-1);执行这个语句结束是不是返回main函数中。

第规的返回象栈一样后进先出。
你的程序是一个求n!的值。
如果n=5,
s=fun(5)
s=5*f(4)
s=5*4*f(3)
s=5*4*3*f(2)
s=5*4*3*2*f(1);
此时f(1)是有值得f(1)=1;
然后依次饭会调用;
f(1)到f(2)到f(3)到f(4)到f(5)主函数;
希望你明白!

是的!