求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);
}

  • - 因为你判断应该用== 你一个=成赋值了,根本执行不下去
        楼上正解。                            

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

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

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

楼主少打了个等号,哈哈

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