求问一个关于递归的问题
c语言吧
全部回复
仅看楼主
level 5
ssgggaa
楼主
double myfunction(int p)
{
double a;
printf("%d %f\n",p,a);
if(p<=0)
return 0;
if(p>0)
{
a=1/(1+myfunction(p-1));
printf("%d %f\n",p,a);
return a;}
}
这是那个函数的递归
然后第二行的数字表示递归多少次,为什么第一个printf的都是0,而第二个printf显示的有数字,然后返回值返回的却是0而不是最后的结果,求问
2018年11月20日 10点11分
1
level 5
ssgggaa
楼主
求问大佬吗
2018年11月20日 10点11分
2
level 5
ssgggaa
楼主
有大佬吗
2018年11月21日 11点11分
3
rdy588
a的值怎么来的,函数里面的a
2018年11月22日 05点11分
ssgggaa
@rdy588
a不是递归的结果吗。
2018年11月22日 05点11分
rdy588
把第一个输出去了试试
2018年11月22日 05点11分
ssgggaa
@rdy588
什么意思
2018年11月22日 05点11分
level 11
醴曩
你的a的值哪里来
2018年11月21日 12点11分
4
level 11
醴曩
就是第一层递归的时候a从哪里来
2018年11月21日 12点11分
5
ssgggaa
什么意思
2018年11月22日 02点11分
level 5
ssgggaa
楼主
a好像没初始化是吗
2018年11月22日 02点11分
6
醴曩
对啊
2018年11月22日 02点11分
ssgggaa
@醴曩
所以错在这里吗
2018年11月22日 05点11分
ssgggaa
@醴曩
但是我初始化a为0或者是一后还是这样啊
2018年11月22日 05点11分
level 11
醴曩
你就直说你调用myfunction(3),你要输出什么
2018年11月22日 09点11分
7
1