求教!!!
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
int flag = 1;
while(i<=100)
{
i++;
if(i%2==1)
{
sum+=i;
}
else
{
sum-=i;
}
}
printf("sum=%d\n",sum);
return 0;
}
答案为什么不对
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
int flag = 1;
while(i<=100)
{
i++;
if(i%2==1)
{
sum+=i;
}
else
{
sum-=i;
}
}
printf("sum=%d\n",sum);
return 0;
}
答案为什么不对
2015-08-08
哦,是这样的:
看下这段代码
while(i<=100) { i++; if(i%2==1){ sum-=i; }else{ sum+=i; } }
变量i的初始值是1,对吧.然后在第3行遇到了i++,所以i就是2了,这样一直下去,到最后,i的边界值是101.懂了吗?
所以需要按照上面代码逻辑来写,若是按照你的逻辑来写的话把
i++;
语句放在if语句后面就好了.看下完整代码.
#include <stdio.h> int main() { int sum = 0; //定义计算结果变量sum int i = 1; //定义循环数字变量i int flag = 1; //定义符号状态变量flag while(i<=100) { if(i%2==0){ sum=sum-i; }else{ sum=sum+i; } i++; } printf("sum=%d\n",sum); return 0; }
这样也可以.你的代码把i++的位置调换一下也会达到同样的效果:
#include <stdio.h> int main() { int sum = 0; //定义计算结果变量sum int i = 1; //定义循环数字变量i int flag = 1; //定义符号状态变量flag while(i<=100) { if(i%2==1){ sum+=i; }else{ sum-=i; } i++; } printf("sum=%d\n",sum); return 0; }
要注意我们使用变量i的值是经过i++ 过后的.最后关心下边界值.
举报