慕斯卡2483961
2020-09-25 04:20
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
int flag = 1;
while(i<=100)
{
i++;
sum += i * flag;
flag *= -1;
printf("%d\n", sum); // 执行的第一步结果是2,是错误的。虽然最终结果是-50没错,但是第一步是sum += i * flag的时候,i是2
}
return 0;
}
可是我觉得i++本来的定义就是先读数,再取值,也就是你把i++放在前面也没关系,因为它会先读取1,再取值为2,所以在第一次循环中实际参加的数就是1
#include <stdio.h>
// 正确答案应该是这样
int main()
{
int sum = 0;
int i = 1;
int flag = 1;
while(i<=100)
{
sum += i * flag;
flag *= -1;
i++;
printf("%d\n", sum);
}
return 0;
}C语言入门
928126 学习 · 21543 问题
相似问题