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

return的问题

#include <stdio.h> 

/* 

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

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

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

 */

int pAge(int numPeople)

{

    int age;

    if(numPeople==1)

     {

     age=10;

     }

    else

    {   

       age=pAge(numPeople-1)+2;

    }

    return age;

}

int main() 

{

    int fifthage=pAge(5);

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

return 0;

}


1,代码中的 ruturn age如果我放到了else的大括号中它的结果会改变,我想问一下放在大括号外和里,结果会不一样的原因。

2,还有一句是,age=pAge(numPeople-1)+2;这句我可以写成age=(numPeople-1)+2吗?不可以的话是为什么呢?

正在回答

2 回答

int  pAge(int numPeople)//第一个int就是说有返回值并且是int类型,没有返回值的会写void。pAge这个是函数名,括号里面的是参数,以及参数的类型

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

Lynn0 提问者

非常感谢!
2016-01-10 回复 有任何疑惑可以回复我~

第一,如果满足 if(numPeople==1)就不会执行else,这函数要求有int型返回值,所以把ruturn age放到else会报错。

第二,不能,因为这样才是调用函数pAge(numPeople-1),写成(numPeople-1)+2意义完全是不一样的



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

Lynn0 提问者

如何看函数要求有int型返回值?
2016-01-08 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

return的问题

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