我不明白为什么总和== 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;
}
答案 0 :(得分:6)
t
从0
开始,并在循环的每次迭代中递增
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
如您所见,105
是sum
得到的第一个不小于100
的值。
答案 1 :(得分:4)
在你的密码中:sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 = 105。