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

想问这个哪里错了为什么算出来是五岁

#include <stdio.h> 

/* 

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

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

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

 */

int getAge(int n)

{

    if(n == 1)

        return 10;

    else

        return getAge(n-1)+2;    

}

int main() 

{

    int  getAge(5);

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

	return 0;

}


正在回答

3 回答

getAge(5)的意思是函数getAge在参数为5时的返回值,是一个常数,int是用来定义整型变量的,你拿来定义常数,就好比列方程的时候“设未知数5”,完全没有意义的。

直接删去第31行,把第33行改成printf("第5个人的年龄是%d岁",getAge(5));
就好了。

0 回复 有任何疑惑可以回复我~
#include <stdio.h> 
 
/* 
 
 * 请使用递归函数完成本题
 
 * 小编已将正确代码放在左侧任务的“不知道怎么办”里
 
 * 小编希望各位童鞋独立完成哦~
 
 */
 
int getAge(int n)
 
{
 
    if(n == 1)
 
        return 10;
 
    else
 
        return getAge(n-1)+2;    
 
}
 
int main() 
 
{
 
    int  getAge(5);     
 
    printf("第5个人的年龄是%d岁",getAge);   //此处 getAge 没有定义  可以:去掉前面的int getAge(5)再                                              将此处的getAge改为getAge(5) 或者 前面定义一个函数int                                               num=getAge(5)再将此处的getAge改为num
 
    return 0;
 
}


0 回复 有任何疑惑可以回复我~
//递归函数练习_1.c
#include <stdio.h> 

int Age(num)
{
    int age;
    if(num==1)
    return 10;
    else
    return Age(num-1)+2;
}
int main() 
{
    printf("第5个人的年龄是%d岁",Age(5)); 
    return 0;
}

题主看一下吧。



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

baem1998 提问者

谢谢分析
2017-08-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

想问这个哪里错了为什么算出来是五岁

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