2015-09-22 27 views
0

我正在爲兩個數字的gcd簡單的算法。當我輸入a和b時,我不知道它爲什麼會崩潰。Codeblocks Project.exe停止響應c + +

下面的代碼:

#include<iostream> 
#include<fstream> 

using namespace std; 

int main() 
{ 
    int a, b, d, i, max; 
    cin >> a; 
    cin >> b; 
    if (a<b) 
    { 
     max = b; 
    } 
    else 
    { 
     max = a; 
    } 

    for (i = 0; i <= max; i++) 
    { 
     if (a%i == 0 && b%i == 0) 
     { 
      d = i; 
     } 
    } 
    cout << d << endl; 
} 
+4

看起來像一個偉大的時刻[學習如何使用調試器(http://ericlippert.com/2014/03/05/如何調試小程序/)來調試小程序。 –

+0

哦,好吧,我很抱歉發佈這樣一個壞問題。 –

+0

當'i'爲0時'a%i'是你的問題 –

回答

0

問題是:a%i == 0 && b%i == 0當i = 0。此代碼的工作現在罰款:

的#include 的#include

using namespace std; 

int main() 
{ 
    int a, b, d, i, max; 
    cin >> a; 
    cin >> b; 
    if (a<b) 
    { 
     max = b; 
    } 
    else 
    { 
     max = a; 
    } 

    for (i = 1; i <= max; i++) 
    { 
     if (a%i == 0 && b%i == 0) 
     { 
      d = i; 
     } 
    } 
    cout << d << endl; 
}