sum=sum+i;++i;与++i;sum=sum+i;运行结果为什么相差100啊?具体程序在...

发布网友 发布时间:2024-10-24 03:28

我来回答

5个回答

热心网友 时间:2024-11-09 03:39

结果相差100,就是就最后那个退出条件的问题。

while(i<=100)//从1加到100
{
   sum=sum+i;
   ++i;
}

这个是sum后再++i;当i =101的时候就不进入循环 了。

这个代码是从 :1加到100.

while(i<=100)//从2加到101
{
    ++i;
   sum=sum+i;
}

这个是sum前 ++i; 当i = 100的时候可以进去,进去后 ++i  就是101了,但是101还是加进了sum中。

但是为什么是多了100呢?这样不是多了101么?

问题是这样的,你这个开始进去后 ++i;  加入  sum的第一个数是2,这样的话你的1就没有加进去。

这个代码是从:2加到101.

所以就是多了100;

现在明白了么?

热心网友 时间:2024-11-09 03:41

第二段程序,sum是从2+101

热心网友 时间:2024-11-09 03:38

这是一个求和的c语言程序,意思是从1开始加,一直加到100等于多少,即1+2+3...+100=?运行的结果应该是sum=5050.
i,sum定义为整型变量,
执行sum=sum(之前的)+i计算过程,
每执行一次,i的值加1。

热心网友 时间:2024-11-09 03:40

第一个计算的是1+2+...+100

第二个计算的是2+3+...+101

第二个先将i+1,所以sum会从2开始累加

当i=100时sum=sum+100

然后下一次循环i<=100仍成立继续执行,这时遇到++i,i=101

还要执行一次sum=sum+101

第二种方法可改为

void main()
{
    int i=0,sum=0;//i=0
    while(i<100)//i<100
    {
       ++i;
       sum=sum+i;
        
    }
    printf("%d\n",sum);
}

热心网友 时间:2024-11-09 03:42

上面那个 i=100时 进入循环 sum=sum+100 然后i=101 就循环结束了
下面那个 i=99时 进入循环 然后i自加为100 sum=sum+100 然后i再次进入循环 自加为101 sum=sum+101了
由于下面那个在一开始 直接跳过了 sum=sum+1 所以 最后相差 100

也就是说 上面的是1到100
下面的是2到101

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com