求问 为什么这样也能得出答案?

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

琉璃星

2015-12-25 09:29

#include <stdio.h> 

int getYears(int n)

{ int num;

 if(n==5)

  {return 10;}

  else 

  {num=(getYears(n+1)+2);

  }

  return num;

  }

int main() 

{

    int num=getYears(1);

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

return 0;

}


写回答 关注

1回答

  • 努力提升
    2015-12-25 09:53:03

    当年你的传值 1到递归函数时,执行4次num=(getYears(n+1)+2);一直到n == 5//这期间每执行一次n都会加1,就是然后这个+2的运算也会执行4次,就是8,当n == 5,返回一个10,所以当递归结束时num = 2+2+2+2+10 就是18

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题