i++的位置影响结果

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

zjwzzdj

2015-07-28 16:20

 while(i<=100)

    {

      if(i%2==1)

        {

            sum=sum+i;

        }

        else

        {

            sum=sum-i;

        }

          i++;

    }

这里的i++放在if else 语句前后所得到的结果是正负相反的,这是为什么啊,求教啊!

写回答 关注

2回答

  • 紫泉
    2015-07-28 18:09:42
    已采纳

    假设在while前是 int i = 1; 那么就是0+1-2+。。。+99-100 = -50;如果你把i++放在if前面,那么就是0-2+3-...-98+99-100+101 = 50

    zjwzzd...

    非常感谢!

    2015-07-28 20:51:27

    共 1 条回复 >

  • 紫泉
    2015-07-28 18:10:27

    可以用这代码测试:

     #include<iostream>

     using namespace std;

     int main()

     {

     int sum = 0;

     int i = 1;

      while(i<=100)

        {

          i++;

          if(i%2==1)

            {

                sum=sum+i;

                cout<<"+"<<i;

            }

            else

            {

                sum=sum-i;

                  cout<<"-"<<i;

            }


        }

        cout<<endl<<sum;

        return 0;


     }


C语言入门

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

926025 学习 · 20793 问题

查看课程

相似问题