2017-02-19 456 views
1

我是初學C++編碼器,仍在學習基礎知識。嘗試運行程序時出錯「main.exe已停止工作」

我正在寫一個程序,測試輸入的數字是否是一個完美的數字,但是每當我運行代碼時,我得到一個錯誤,說main.exe已停止工作。

我也回顧了本網站上提出的類似問題,但我不明白。

有人可以很簡單地解釋它嗎?

這裏是我的代碼:

#include <iostream> 

using namespace std; 

int main() 
{ 
    int i, number, s = 0; 
    cin >> umber; 

    for (i = 0; i < number; i++) 
     if (number % i == 0) 
      s += i; 

    if (number == s) 
     cout << "the umber is perfect"; 
    else 
     cout << "the number is not perfect"; 

    return 0; 
} 
+6

模運算符'%'執行除法運算。現在想想當'i'爲零時你會發生什麼,並且你試圖用零來做一個除法...... –

+0

@Someprogrammeare所以你想說的是,如果與0的分割從不發生,我不會得到那個錯誤? – 1nightstamp

+0

是啊,只需將我設置爲1而不是0 – CrizerPL

回答

1

那麼,除了輸入到一個未定義的變量上線6

cin>>umber; 

,你應該更改爲:

cin>>number; 

你有一個浮點異常發生,你正在對一個從零開始的循環索引(i)執行一個模運算:

for (i=0;i<number;i++) 
    if(number%i==0) 

模運算與除法相似,就像你不能被零除,你不能做模0。

+0

非常感謝,讓它工作:D – 1nightstamp