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

求教这个错在哪里了?

#include <stdio.h> 

/* 

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

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

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

 */

int people(int n);

{

    int age;

    if (n==1)

    {

        return 10;

    }

    else

    {

        age = people(n-1)+2;

        printf("第d%个人%d岁\n", n, age);

    }

}

int main() 

{

    int age = people(5);

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

return 0;

}


提问者:iseoks 2021-04-07 17:01

个回答

  • qq_慕斯卡9088944
    2021-07-17 10:53:16

    #include <stdio.h>
    int Number(int n)

    //这里不需加";"


    {
        int num;
        if(n==1)
       
        num=10;

    //这里是定义num  不是返回return
        
        else
         num=Number(n-1)+2;
            printf("第%d个人的年龄是%d岁\n", n,num);
       
        return num;
    }

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

  • qq_慕设计0043532
    2021-04-10 21:42:42

    else

        {

            age = people(n-1)+2;        //没有讲函数得到的值返回到主函数(主调函数)

            printf("第d%个人%d岁\n", n, age);    //不应该有打印语句

        }

    int main() 

    {

        int age = people(5);

    printf("第5个人的年龄是%d岁\n", age);     //age没有传入实参    正确应该是 age(5)

    return 0;

    }