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

为什么输出是8?

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


提问者:寂零式暧昧 2017-10-16 17:36

个回答

  • 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

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

    return age不属于else的部分

    放在最后,else的外面