请问这段代码哪儿错了

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

tuzib263629491

2016-07-10 20:23

计算1-2+3-4+……-100的值


#include <stdio.h>

int main()

{

    /* 小伙伴们:

           选择你们认为最合理的循环结构完成功能吧 */

    int sum = 0;  //定义计算结果变量sum

    int i = 1;    //定义循环数字变量i

    int flag = 1; //定义符号状态变量flag

    

    

    //使用for循环

    for(i=1;i<=100;i++)

    {

        i=flag*i;

        sum=sum+i;

        flag=-flag;

    }  

    printf("sum=%d\n",sum); 

    

    return 0;    

}

写回答 关注

6回答

  • 玖墨悬
    2016-07-11 19:54:25
    已采纳

    #include <stdio.h>

    int main()

    {

        /* 小伙伴们:

               选择你们认为最合理的循环结构完成功能吧 */

        int sum = 0;  //定义计算结果变量sum

        int i = 1,m=1;    //定义循环数字变量i

        int flag = 1; //定义符号状态变量flag

        

        

        //使用for循环

        for(i=1;i<=100;i++)

        {

            m=flag*i;

            sum=sum+m;

            flag=-flag;

        }  

        printf("sum=%d\n",sum); 

        

        return 0;    

    }


    tuzib2... 回复玖墨悬

    thx

    2016-07-14 11:35:11

    共 3 条回复 >

  • 玖墨悬
    2016-07-11 19:55:09

    试试这个

  • 万劫不复
    2016-07-11 08:47:34

    i=flag*i; 这句去掉。

    在循环条件中已经有i++这个语句改变 i 值,这一句再改变 i 值的话,循环不可控了,最后 i 会变成负数,陷入死循环了。

    万劫不复

    还有sum的计算,你并没有用到符号标志flag,所以一直加的都是正数。 这样 sum=sum+i*flag

    2016-07-11 08:49:47

    共 1 条回复 >

  • 365366
    2016-07-10 23:26:27

    i=flag*i;   sum=sum+i;

    把这两行改成sum=sum+i*flag


  • stalinwang
    2016-07-10 20:50:12

    flag=-flag;这里的问题吧

  • 依然范佩西425
    2016-07-10 20:47:34

    没看到错误啊

    慕粉3558...

    他把i的值改变了,判断会出现问题

    2016-07-21 17:38:51

    共 1 条回复 >

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题