为什么运行结果 第五个人的年龄是9 岁 不是应该18么?

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

慕虎124324

2019-02-02 22:21

#include <stdio.h> 

/* 

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

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

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

 */

int age(int n)

{

    int year;

    if(n == 1)

    {

        year = 10;

    }

    else

    {

        year = age(n - 1) + 2;

        return year;

    }

}

int main() 

{

    int ager = age(5);

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

return 0;

}


写回答 关注

3回答

  • shadow_006
    2019-02-04 12:57:50

    if语句内要return year

  • 丨丶浪心
    2019-02-03 16:45:03

    虽然不知道为什么,但是需要把return弄在else的括号外面,要不然在执行else那一步的时候好像就会直接转出,怎么转还不明白

    qq_慕神8...

    因为if下面要有return,else下面也要写return,这样不管怎么走,都有返回值,在整个if外面加return或者if else分别加都可以 多试试就知道啦

    2019-02-03 21:34:29

    共 1 条回复 >

  • 修裾欲溯空
    2019-02-03 12:19:27

    是10+2+2+2+2而不是1+2+2+2+2


C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题