#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吗?不可以的话是为什么呢?
int pAge(int numPeople)//第一个int就是说有返回值并且是int类型,没有返回值的会写void。pAge这个是函数名,括号里面的是参数,以及参数的类型
第一,如果满足 if(numPeople==1)就不会执行else,这函数要求有int型返回值,所以把ruturn age放到else会报错。
第二,不能,因为这样才是调用函数pAge(numPeople-1),写成(numPeople-1)+2意义完全是不一样的