慕沫
2018-10-07 15:05
#include <stdio.h>
int main()
{
/* 小伙伴们:
选择你们认为最合理的循环结构完成功能吧 */
int sum = 0; //定义计算结果变量sum
int i = 1; //定义循环数字变量i
int flag = 1; //定义符号状态变量flag
//使用while循环
while(i<=100)
{
i++;
if(i%2==0){
sum-=i;
}
else{
sum+=i;
}
}
/*
//使用for循环
for(i=1;i<=100;i++)
{
if(i%2==0){
sum-=i;
}
else{
sum+=i;
}
} */
printf("sum=%d\n",sum);
return 0;
}
while循环出来答案是50,for循环答案是-50,为什么不一样啊?
while循环时用i++,if里的i是不加1的,那么sum=-1+2-3+4......+100。
把while的i++放循环最后就行了
好吧。。。是我看错了.不好意思
我怎么感觉是因为第一个循环结束,i和sum没有归零导致-50.
原因就是i++,while中当i=100时,循环再进行一次,i++就变成101了,所以sum加到了101。for循环当i=100时,循环进行一次,i++变成101就终止循环了。
C语言入门
926207 学习 · 20797 问题
相似问题