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

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

丿雨灬昔丶

2018-11-01 15:23

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

}


写回答 关注

3回答

  • 慕码人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)

C语言入门

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

926207 学习 · 20797 问题

查看课程

相似问题