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

我自己写的这个为什么输出结果不对

#include <stdio.h> 

/* 

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

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

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

 */

int fun(int n)

    int sum;

    if(n=1)

    {

        sum= 10;

    }

    else

    {

        return sum=fun(n-1)+2;

    }

}

int main() 

{

    int sum=fun(5);

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

return 0;

}


提问者:丿雨灬昔丶 2018-11-01 15:23

个回答

  • 慕码人3084263
    2018-12-26 16:02:58

    慕课网这边的答案在if那个循环里面少了个返回值,加个return 10;或者return sum;就行

  • 慕粉0247298809
    2018-11-02 16:29:16


    #include <stdio.h> 


    /* 


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


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


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


     */


    int fun(int n)



        int sum;


        // if(n=1)            //这里不是赋值,是判断, 要改成if(n == 1) 

    if (n == 1)

        {


          // sum = 10;       // 这里没有结束语句  

           //加一行 return sum; 或者直接改成   return 10; 

    return 10; 

        }


        else


        {


           // return sum=fun(n-1)+2;  //这里不能赋值  改成return fun(n-1)+2 

    return fun(n-1)+2 ;

        }


    }


    int main() 


    {


        int sum=fun(5);


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


    return 0;


    }


  • 丨二三丨
    2018-11-01 17:09:08

    if(n==1)