我想问一下这俩个问题都是怎么跳出递归函数循环的啊?

来源:5-9 递归函数练习

孤依蓑客

2020-03-29 16:42

#include<stdio.h>
int getAge(int n)
{
 int age;
 if(n==1)
 age=10;
 else
 {
  age=getAge(n-1)+2;
 }
 return age;
}
int main()
{  
 printf("第5个人的年龄是%d岁",getAge(5));
}

写回答 关注

1回答

  • 慕UI4407309
    2020-03-30 13:29:22
    已采纳

    递归调用时参数是n-1,当n减小到n=1时,age=10,然后在循环带回去,就可以返回一个age的总和,这个时候return age就跳出了循环。例如getAge(3) = getAge(2)+2,getAge(2) = getAge(1) + 2;此时getAge(1) = 10

    所以结果为:10+2+2=14;

    孤依蓑客

    懂了懂了!谢谢啦!

    2020-03-30 15:09:46

    共 1 条回复 >

C语言入门

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

926287 学习 · 20799 问题

查看课程

相似问题