为什么变量== 105而不是100?

时间:2015-11-05 17:08:29

标签: c loops

我不明白为什么总和== 105.对我来说它应该是100但我无法以这种方式工作。有人可以解释一下吗?

#include <stdio.h>
#include <stdlib.h>

int main()
{
   int sum=0;
   int t=0;
   do{
        t++;
        sum= sum + t;
   }
   while(sum<100);

   printf("sum:%d\n", sum); //prints 105
   printf("t = %d\n", t);
   return 0;
}

2 个答案:

答案 0 :(得分:6)

t0开始,并在循环的每次迭代中递增 sum0开始,并在循环的每次迭代中增加值t,直到它不再小于100。如果我们在整个执行过程中追踪它们的值:

Iteration t sum
 0        0   0 
 1        1   1
 2        2   3
 3        3   6
 4        4  10
 5        5  15
 6        6  21
 7        7  28
 8        8  36
 9        9  45
10       10  55
11       11  66
12       12  78
13       13  91
14       14 105

如您所见,105sum得到的第一个不小于100的值。

答案 1 :(得分:4)

在你的密码中:sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 = 105。