qq_37447441
qq_37447441
采纳率80%
2017-02-08 10:37 浏览 2.8k
已采纳

求1*1+2*2+3*3+……+n*n为什么结果总是1(用递归)

#include
int lala(int);
void main(void)
{
int sum,n;
scanf_s("%d", &n);
sum = lala(n);
printf("最后结果是%d\n",sum);
}
int lala(int m)
{
int su;
if (m = 1)
{
su = 1;
return (su);
}
else
{
su=m*m + lala(m - 1);
}
return(su);
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答 默认 最新

  • 已采纳
    zzhao114 Z. ZHANG 2017-02-08 11:36
    • - 因为你判断应该用== 你一个=成赋值了,根本执行不下去
    点赞 1 评论 复制链接分享
  • sun1021873926 夕阳雨晴 2017-02-08 11:40
            楼上正解。                            
    
    点赞 1 评论 复制链接分享
  • zzhao114 Z. ZHANG 2017-02-08 11:41

    第二次遇到有人把赋值和判断弄混了,,,,

    点赞 1 评论 复制链接分享
  • bitwoods 「已注销」 2017-02-09 01:20

    1楼正解,开始学习概念要清楚
    if (m = 1)
    {
    su = 1;
    return (su);
    }
    改成
    if (m == 1)
    {
    su = 1;
    return (su);
    }

    点赞 1 评论 复制链接分享
  • lotosv2010 lotos_2010 2017-02-09 02:12

    1楼正解,赋值和判断没搞清楚

    点赞 1 评论 复制链接分享
  • zhk779 zhk779 2017-02-09 03:11

    楼主少打了个等号,哈哈

    点赞 1 评论 复制链接分享
  • sum_TW 奋斗的小程序员 2017-02-10 02:28

    =与==很容易错的,以后一定要细心,错了很难找的这种错误。

    点赞 1 评论 复制链接分享

相关推荐