关于#for#的问题,如何解决?

帮忙看一下这段代码;不对i和SUM赋初值;运行结果为什么第一个是16?

#include <stdio.h>
#include<windows.h>
int main()
{
    int i,sum;//循环变量
    for (; i<=100; i++)
    {
        sum=sum+i;
        printf("%d\t", sum );  // \t是跳到下一个Tab位置
    }
    printf("\n");
    system("pause");
    return 0;
}

img

这个是无法预料的,它的值是什么不同环境不同
好比一条公路,公路范围内是柏油地面,但是出了公路边界是什么,可能是农田,也可能是悬崖,也可能是墙壁,这个无法预料。

如果开始不初始话的话,那它的值会一直在里面,每次运行都是用的上一个值,你初始化下
我帮你改了一下:

#include <stdio.h>
#include<windows.h>
int main()
{
    int sum=0;//循环变量
    for (int i=1;i<=100;i++)
    {
        sum=sum+i;
        printf("%d\t",sum);  // \t是跳到下一个Tab位置
    }
    printf("\n");
    system("pause");
    return 0;
}

变量不初始化,sum的初始值是随机的。

不对i和SUM赋初值;运行结果为什么第一个是16
i 隐式赋值为0

输出是个随机值,赶巧它等于16。