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

求解,为什么这样写是错的

#include <stdio.h> 

/* 

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

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

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

 */

getNumber(n)

{

    int yearsold; //定义岁数

    if(n==1)

    {

        return 10;

    }

    else

    {

        yearsold=getNumber(n)+2;

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

    }

    return  yearsold;    

}

int main() 

{

    int yearsold=getNumber(5); 

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

return 0;

}


提问者:诺丁汉 2017-01-08 20:16

个回答

  • 西红柿卫士
    2017-01-08 22:03:46
    已采纳

    yearsold(//第n个人的年纪)=getNumber(n-1)(//上个人的年纪)+2;

    你的n没-1,那肯定是错误的

  • onlyl_pets
    2017-03-28 23:34:21

    为什么要减1呢,一直不明白