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

ano*_*non 0 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;
}
Run Code Online (Sandbox Code Playgroud)

Mur*_*nik 6

t0循环的每次迭代开始并递增.
sum从循环的每次迭代中0的值开始并增加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
Run Code Online (Sandbox Code Playgroud)

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