为什么这样还是会输出主函数的printf语句

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

qq_慕丝6578340

2020-10-29 12:59

#include <stdio.h> 

int aabb(int n)

{

    int year;

    if(n == 1)

    {

        year = 10;

    }

    else if(n == 2)

    {

        year = aabb(n-1)+2;  //第二人比第一人大两岁

    }

    else if(n == 3)

    {

        year = aabb(n-1)+3;  //第三人比第二人大三岁

    }

    else if(n == 4)

    {

        year = aabb(n-1)+4;  //第四人比第三人大四岁

    }

    else if(n == 5)

    {

        year = aabb(n-1)+5;  //第五人比第四人大五岁

    }

    else

    {

        printf("输入错误,请检查后再输入!");

    }

    return year;

}

int main() 

{

    int n = 10;

printf("第%d个人的年龄是%d岁",n,aabb(10));

return 0;

}


写回答 关注

1回答

  • weixin_慕侠5515545
    2020-11-14 22:40:47

    n>5时aabb输出未赋值的year,即使未赋值,也分配了地址,其对应的数值可能就是取决于编译时该内存地址中恰巧存在的数值,因此是随机的。

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题