问答详情
源自:4-10 循环结构之三种循环比较

在对循环计算1-2+3-4+5-6+…-100的值时,我使用如下代码,怎么不行呢?

#include <stdio.h>
int main()
{
    int sum = 0;  //定义计算结果变量sum
    int i = 1;    //定义循环数字变量i
    while(i<=100)
    {
        i++;
        if(i%2==0)
		{
			i=-i;
		}
		sum+=i;
    }
    printf("sum=%d\n",sum); 
    
    return 0;    
}


提问者:补食者 2016-02-05 20:52

个回答

  • 失落的ZXW
    2016-02-05 22:54:29
    已采纳

    首先你的  sum+=1;  最好在  i++;  前,不然得数会少加个1。之后你  i=-i  ,这样的话没有问题,可是检测循环i<=100时,你的i已经被你赋值为-i,所以这会让程序出错的。你可以改成

    if(i%2==0){sum-=i;}else{sum+=i;}

  • 补食者
    2016-02-08 20:37:26

    新年快乐,非常感谢