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

求大神解答

#include <stdio.h>

int getPeachNumber(n)

{

    int num;    

    if(n==10)

    {

      return 1;(为什么这里要用return 1; 我写的时候用的是break;为什么会提示错误)

    } 

    else

    {

        num = (getPeachNumber(n+1)+1)*2;   (这个函数放在这里是干嘛的?在函数里面也可以调用函数吗?不可以用num=((n+1)+1)*2吗?)

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

    }

    return num;

}

int main()

{

    int num = getPeachNumber(1);

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

    return 0;

}


正在回答

2 回答

num=(getpeachnumber(n+1)+1)*2,为何要这样用,不能是num=getpeachnumber((n+1)+1)*2吗,还有就是为何不是(n+1)*2

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

因为题目要求用函数递归来解决这个问题,递归就是函数自己调用自己本身的这个函数。所以用num=(getPeachNumber(n+1)+1)*2来实现函数递归,因为题目说第十天只剩下1个桃子,所以当n=10的时候就要返回1这个结果。return后面不能写break,int函数它return的结果也必须是int,函数可以调用除了main以外所有声明定义的函数。

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

举报

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

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

进入课程

求大神解答

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