问答详情
源自:5-9 递归函数练习

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

#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;

}


提问者:qq_慕丝6578340 2020-10-29 12:59

个回答

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

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