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

麻烦大佬看看哪儿错了

#include<stdio.h>
int ageprogram(int n)
{  
    int age;
    if(n==1)
    {
    return 10;
    }
    else
    {
    age=ageprogram(n-1)+2;
    }
}
int main()
{
    int age;
    age=ageprogram(5)
    printf(age);
    return 0;
}

提问者:慕容9265194 2020-11-08 08:14

个回答

  • qq_慕仙9261721
    2021-01-10 16:23:26

    int ageprogram(int n)函数中,if后的return 10;是不对的,造成的结果是当传递的参数n不等于1时是没有返回值的,只有n=1时返回10;也就是函数把活干了,却没有把结果上报主函数,相当于白写;

    在int main()函数中age=ageprogram(5)语句掉了“;”;输出语句printf()错误。

  • qq_慕函数9094777
    2020-12-22 00:50:05

    我犯过和你一样的错,第一,int age 你申明了两次。第一次申明后第二次没必要再申明,第二,main 函数里你可以直接printf("第5个人为%d岁”,ageprogram(5));再给age赋值不是画蛇添足吗?

  • weixin_慕仔8412287
    2020-12-20 10:55:21

     倒数第三行改成: printf("第5个人的年龄是%d岁",age);


  • 我不是懂王
    2020-11-10 09:26:11

    倒数三行少了个;