C语言 100内整数相加结果出错,如何解决?

100内整数相加结果出错
代码如下#include <stdio.h>

int main()
{
int i,sum;
for(i=1;i<=101;i++)
{
sum=sum+i;
}
printf("The sum of all integers between 1 and 100 is %d\n",sum);
}

显示结果为

The sum of all integers between 1 and 100 is 5152

我尝试改错

将 i<=101 改为 i<=100 但得出结果为5051

如何算出100内相加为5050

你题目的解答代码如下:

#include <stdio.h>
int main()
{
    int i, sum = 0; //sum 初始要设置为 0
    for (i = 1; i <= 100; i++) //循环到i <= 100  或者是 i < 101;
    {
        sum = sum + i;
    }
    printf("The sum of all integers between 1 and 100 is %d\n", sum);
}

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

sum没有初始化为0

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

sum没有赋初始值,这样的话初始值不是固定的。现将sum = 0

解决代码如下
#include<stdio.h>
int main()
{
int i,sum;
for(i = 0;i < 101;i++)
{
sum = i + sum;
}
printf("The sum of all integers between 1 and 100 is %d\n",sum);
return 0;
}****

其实你只需要把for循环里面的i<=101改为i<101即可