2015-09-22 98 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; 
}