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

来源:4-10 循环结构之三种循环比较

补食者

2016-02-05 20:52

#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;    
}


写回答 关注

2回答

  • 失落的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:36:38

    共 1 条回复 >

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

    新年快乐,非常感谢

    失落的ZXW

    新年快乐,好好学习,天天向上

    2016-02-08 21:12:53

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926210 学习 · 20797 问题

查看课程

相似问题