为了账号安全,请及时绑定邮箱和手机立即绑定

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

#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 回答

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

0 回复 有任何疑惑可以回复我~


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


}


1 回复 有任何疑惑可以回复我~

if(n==1)

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信