为什么输出是8?

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

寂零式暧昧

2017-10-16 17:36

#include <stdio.h> 
/* 
 * 请使用递归函数完成本题
 * 小编已将正确代码放在左侧任务的“不知道怎么办”里
 * 小编希望各位童鞋独立完成哦~
 */
int getAge(p){
    int age;
    if(p==1){
        age=10;
    }
    else{
        age= getAge(p-1)+2;
        return age;
    }
}








int main() 
{
    
	printf("第5个人的年龄是%d岁", getAge(5)); 
	return 0;
}


写回答 关注

2回答

  • qq_莫非
    2017-10-16 18:31:20
    已采纳
    #include <stdio.h> 
    /* 
     * 请使用递归函数完成本题
     * 小编已将正确代码放在左侧任务的“不知道怎么办”里
     * 小编希望各位童鞋独立完成哦~
     */
    
    int getAge(p){
        int age;
        if(p==1){
            age=10;
            return age;
        }
        else{
            age= getAge(p-1)+2;
            return age;
        }
    }
    
    int main() 
    {
        
    	printf("第5个人的年龄是%d岁", getAge(5)); 
    	return 0;
    }

    这样才对,你if(p==1)里面少了return age

    寂零式暧昧

    非常感谢!

    2017-10-16 20:24:01

    共 1 条回复 >

  • qq_浩_40
    2017-10-18 21:57:34

    return age不属于else的部分

    放在最后,else的外面

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题