麻烦大佬看看哪儿错了

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

慕容9265194

2020-11-08 08:14

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

写回答 关注

4回答

  • 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赋值不是画蛇添足吗?

    qq_慕函数...

    还有第三个问题,你第一个函数里没有加返回值,else语句后面加return age;

    2020-12-22 00:53:35

    共 1 条回复 >

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

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


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

    倒数三行少了个;

C语言入门

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

926019 学习 · 20793 问题

查看课程

相似问题