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

知道这样不行,但不知道为什么不行

 num =(getPeachNumber(n)+1)*2; 这样做的话,和原来的差别体现在哪里?我本意是想再打印出第十天所剩桃子1个,怎么打印出来

正在回答

3 回答

 if(n==10)

    {

       printf("第10天所剩桃子1个\n");

       return 1;       //递归结束条件

    } 

这样不就好喽?

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

幕布斯6946245 提问者

这样的话是手动输入的,我的意思是自动输出的。就像第9天所剩桃子4个 第8天所剩桃子10个 第7天所剩桃子22个 第6天所剩桃子46个 第5天所剩桃子94个 第4天所剩桃子190个 第3天所剩桃子382个 第2天所剩桃子766个 第1天所剩桃子1534个 只是用一行代码 “printf("第%d天所剩桃子%d个\n",n, num);”就全部打印出来。然而当n=10就终止了吧,那能不能怎样修改,使得“第十天所剩桃子1个”能够不依靠“ printf("第10天所剩桃子1个\n");”这一句就打印出来呢?哈哈,我只是比较喜欢研究深一点
2015-08-13 回复 有任何疑惑可以回复我~
#2

低调D编着故事

不行吧 你return 1; 把值传递时进行的是num=(getpeach(10)+1)*2;而后进行printf("第%d天所剩桃子%d个\n",n, num);所以输出时只能从9开始改不了10
2015-08-15 回复 有任何疑惑可以回复我~
#3

交大少 回复 低调D编着故事

希望可以把合格回复写的更加粗浅一点,笨孩子理解不了~
2015-10-02 回复 有任何疑惑可以回复我~

#include <stdio.h>

float getPeachNumber(n)

{

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

    if(n==11)

    {

       return num=-0.5;       //递归结束条件

    } 

    else

    {    

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

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

    }

    return num;

}

int main()

{

    float num = getPeachNumber(1);

    printf("猴子第一天摘了:%.0f个桃子。\n", num);

    return 0;

}

这样写就行了

0 回复 有任何疑惑可以回复我~

这样的话是手动输入的,我的意思是自动输出的。就像第9天所剩桃子4个
第8天所剩桃子10个
第7天所剩桃子22个
第6天所剩桃子46个
第5天所剩桃子94个
第4天所剩桃子190个
第3天所剩桃子382个
第2天所剩桃子766个
第1天所剩桃子1534个

只是用一行代码 “printf("第%d天所剩桃子%d个\n",n, num);”就全部打印出来。然而当n=10就终止了吧,那能不能怎样修改,使得“第十天所剩桃子1个”能够不依靠“ printf("第10天所剩桃子1个\n");”这一句就打印出来呢?哈哈,我只是比较喜欢研究深一点

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926206    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

知道这样不行,但不知道为什么不行

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