2015-10-05 36 views
-2

當我試圖計算偶數的總和時,如果起始數字是負數,結果是不正確的?爲什麼在C++中顯示不正確的總和?

下面是代碼:

#include <iostream> 


using namespace std; 

int main() { 
    signed int startingNumber, upperLimit; 
    signed int result = 0; 
    cout << "please enter the starting number: "; cin >> startingNumber; 
    cout << "please enter the upper limit: "; cin >> upperLimit; 

    while (true) { 
     if (startingNumber % 2 != 0) result += startingNumber; 
      if (upperLimit == startingNumber) break; 
      startingNumber++; 
     } 
    cout << "The result is: " << result << endl; 
} 

但是當我運行該腳本下面是結果:

please enter the starting number: -2 
please enter the upper limit: 4 
The result is: 3 

我想結果應該是4不是3,作爲計算 - 2 0 + 2 + 4 = 4

問候,,,

回答

0

更改此(startingNumber % 2 != 0)這一點:

(startingNumber % 2 == 0) 

因爲你想要的是要總結的甚至數字,而不是號碼。

2

您使用if (startingNumber % 2 != 0),這意味着它只會將而不是整除的數字相加,導致-1 + 1 + 3 = 3。if語句中的條件僅當startingNumber除以2的餘數不爲零時才爲真,這將是奇數的情況。

改爲使用if (startingNumber % 2 == 0) result += startingNumber;,您應該得到正確的總和。

相關問題