为了账号安全,请及时绑定邮箱和手机立即绑定

麻烦大佬看看哪儿错了

#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 回答

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

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

qq_慕函数9094777

还有第三个问题,你第一个函数里没有加返回值,else语句后面加return age;
2020-12-22 回复 有任何疑惑可以回复我~

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


0 回复 有任何疑惑可以回复我~

倒数三行少了个;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

麻烦大佬看看哪儿错了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信