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

求解!!!!!

#include <stdio.h> 

/* 

 * 请使用递归函数完成本题

 * 小编已将正确代码放在左侧任务的“不知道怎么办”里

 * 小编希望各位童鞋独立完成哦~

 */

int ncs(int n){

    

    if(n==1){

        

        int yi=10;

        

    }else{

        

        yi = ncs(n - 1) + 2;

        return yi;

        

    }

}

int main() 

{

    int uu=ncs(5);

printf("第5个人的年龄是%d岁", u); 

return 0;

}

*****************************************************

 yi = ncs(n - 1) + 2;

        return yi;

这一句我不怎么明白!

右边的值赋给左边  然后再 返回出去?

但yi=10不是给覆盖了?


正在回答

1 回答

一直倒推,到n==2的时候,yi=ncs(2-1)+2等价于yi=ncs(1)+2=10+2=12,这就得出了第二个人12岁,即ncs(2)=12,求ncs(3)=ncs(2)+2=14,这时候就不需要用到int yi=10这一条语句了

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

qq_吖_2 提问者

yi=ncs(2-1)+2等价于yi=ncs(1)+2=10+2=12 这句我不太懂,不好意思,就是yi=ncs(1)+2=10+2=12他这里为什么要加10.
2018-07-29 回复 有任何疑惑可以回复我~
#2

Dream_C 回复 qq_吖_2 提问者

觉得应该因为前面定义了yi = 10
2018-09-17 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

求解!!!!!

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