为了账号安全,请及时绑定邮箱和手机立即绑定

为什么会反向打印每天所剩桃子数?

没有循环语句,为什么会反向打印每天所剩桃子数???

正在回答

1 回答

int getPeachNumber(n)

{

    int num;    //定义所剩桃子数

    if(n==10)

    {

       return 1;       //递归结束条件

    } 

    else

    {

        num = (getPeachNumber(n+1)+1)*2;   //这里是不应该用递归呢?

        printf("第%d天所剩桃子%d个 %d\n", n, num); //天数,所剩桃子个数

    }

    return num;

}

getPeachNumber(n)这个函数一直被调用一层一层的。

num = (getPeachNumber(n+1)+1)*2;   //这里是不应该用递归呢?这一行语句一直执行直到getPeachNumber(10),所以说这个函数被调用了10次,9次要printf所以getPeachNumber(9)的printf先打出来。最后调用的函数最先走完嘛。

1 回复 有任何疑惑可以回复我~
#1

qq_慕仰5425823

大佬就是大佬,哪里都能看到
2019-08-26 回复 有任何疑惑可以回复我~
#2

慕少9114143

我不明白的点在于主函数里定义的数据num=自定义函数,num作为一个整型数据,怎么还把自定义函数里的printf'给带出来了?
2019-09-15 回复 有任何疑惑可以回复我~
#3

小小疾飞 回复 慕少9114143

你这是基础知识没弄搞明白,(num=自定义函数)这个描述是不正确的,应该改为(num=自定义函数的返回值),明白没?
2019-09-15 回复 有任何疑惑可以回复我~
#4

慕少9114143 回复 小小疾飞

等于自定义函数的返回值,那也就是说自定义函数里的printf的内容也可以作为返回值? 这样的话返回值就变成了语句了呀,num的类型不是int吗。。。
2019-09-16 回复 有任何疑惑可以回复我~
#5

小小疾飞 回复 慕少9114143

自定义函数的返回值。。。。。。举个例子 return 0;0就是返回值。printf是这个函数做的事情不是返回值。
2019-09-16 回复 有任何疑惑可以回复我~
#6

慕少9114143 回复 小小疾飞

那最后运行的时候怎么能输出出来前九行的呢。。。
2019-09-16 回复 有任何疑惑可以回复我~
#7

小小疾飞 回复 慕少9114143

你自己多想想吧。。。。。。。。。。。。。。。。。。
2019-09-16 回复 有任何疑惑可以回复我~
#8

慕少9114143 回复 小小疾飞

你比如5-7递归函数(一)里面的那个,只是返回数值,那个自定义函数里面也没有输出,这个5-8里的自定义函数有了输出,怎么主程序也能把这些自定义函数输出的东西也给输出了
2019-09-16 回复 有任何疑惑可以回复我~
查看5条回复

举报

0/150
提交
取消

为什么会反向打印每天所剩桃子数?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信