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

输出结果为啥是50?

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

}



提问者:qq_慕工程4271860 2019-10-22 09:26

个回答

  • 慕课小布丁
    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;

    }


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

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