输出结果为啥是50?

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

qq_慕工程4271860

2019-10-22 09:26

#include <stdio.h>

int main()

{

//初始化 

int i=1;

int flag=1;

int sum=0;

//判断符号 

while(i<=100)

    {

        ++i;

        if(i%2==1)

        {

        flag=1;

        }

        else

        {

        flag=-1;

        }

    sum+=flag*i;

    }

//输出 

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

    return 0;

}



写回答 关注

2回答

  • 慕课小布丁
    2019-10-22 10:30:19
    已采纳

    把++i;移到下面去,你做的相当于是2到101了

    #include <stdio.h>

    int main()

    {

    //初始化 

    int i=1;

    int flag=1;

    int sum=0;

    //判断符号 

    while(i<=100)

        {

            if(i%2==1)

            {flag=1;}

            else

            {flag=-1;}

            sum+=flag*i;

            ++i;

        }

    //输出 

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

        return 0;

    }


    pghao

    flag 可以用取反直接解决吗,我用取反证明不了

    2020-02-15 21:28:37

    共 4 条回复 >

  • 小杰杰吧
    2019-10-22 12:43:19

    要么改为i++,要么把++i,放到后面,

    qq_慕工程...

    这个没有影响

    2019-10-22 12:53:04

    共 1 条回复 >

C语言入门

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

926020 学习 · 20793 问题

查看课程

相似问题