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

有没有大佬帮忙看看这个问题出那了,运行没有问题,但是结果是好几位数

int abc(n)

{

    int age;

    if(n==1)

    {

        return 10;

    }

    else

    {

        age=abc(n-1)+2;

    return age;

}

}









int main() 

{

    

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

return 0;

}


提问者:qq_精慕门8524739 2020-04-26 21:53

个回答

  • 慕容5401208
    2020-07-23 22:22:23

    你的 int main 函数里面 没有调用abc函数

  • 慕尼黑8424803
    2020-07-22 15:40:53

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


  • 慕数据1128963
    2020-05-17 22:50:45

    http://img3.mukewang.com/5ec14c270001987815250757.jpg

    http://img2.mukewang.com/5ec14c290001004316060736.jpg

    主要原因:1你在定义函数时,先要确定参数的类型,如int abc(int n),n为整型;

                      2return age返回的时候,是返回给abc(5),但是你又添加了一个双引号(""),这个双引号("")代表字符串,所以得到的值就不同。(此上乃C童鞋所述,希望对你们有帮助,有所不对的地方(请见解)请指教)


  • 慕斯0252033
    2020-04-27 23:43:40

    abc函数的返回值没有