i++的位置影響結果
?while(i<=100)
? ? {
? ? ? if(i%2==1)
? ? ? ? {
? ? ? ? ? ? sum=sum+i;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? sum=sum-i;
? ? ? ? }
? ? ? ? ? i++;
? ? }
這里的i++放在if else 語句前后所得到的結果是正負相反的,這是為什么啊,求教??!
?while(i<=100)
? ? {
? ? ? if(i%2==1)
? ? ? ? {
? ? ? ? ? ? sum=sum+i;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? sum=sum-i;
? ? ? ? }
? ? ? ? ? i++;
? ? }
這里的i++放在if else 語句前后所得到的結果是正負相反的,這是為什么啊,求教??!
2015-07-28
舉報
2015-07-28
假設在while前是 int i = 1; 那么就是0+1-2+。。。+99-100 = -50;如果你把i++放在if前面,那么就是0-2+3-...-98+99-100+101 = 50
2015-07-28
可以用這代碼測試:
?#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;
?}