【发布时间】:2017-05-31 20:24:51
【问题描述】:
不寻求解决方案或任何东西,只是一个一般性问题。当调用 getgcd() 函数时,我得到一个浮点异常。为什么是这样?我对此进行了研究,但找不到直接的答案。谢谢,下面也是我正在使用的代码。
#include <iostream>
using namespace std;
class D: public E {
private:
int var2;
public:
D(int var, int var2) : E(var) {
var2 = var2;
}
void getgcd() {
int temp;
int newVar = E::var;
while (var != 0) {
temp = newVar % var2;
newVar = var2;
var2 = temp;
}
cout << "The GCD of " << newVar << " and " << var2 << " is " << var2 << endl;
}
};
#include <iostream>
#include "A4p2.cpp"
#include "A4p3.cpp"
using namespace std;
int main(int argc, char *argv[]) {
int x, y;
x = atoi(argv[1]);
y = atoi(argv[2]);
if (x < 1 || x > 50) {
cout << "Input must be between 1-50" << endl;
exit(0);
}
E test(x);
D test1(x, y);
test.play();
test1.getgcd();
return 0;
}
【问题讨论】:
-
#include "A4p2.cpp" #include "A4p3.cpp"别那样做! -
您能否包含您的完整代码,包括您对
class E的定义? -
是的,这是一个分配,但分配不是浮点异常,我只是遇到它并决定询问。宽容一点
-
一般回答:很可能,var2 为零(例如,除以零会触发 FPE)- 为什么是这样,我们需要更多信息,例如 E 的定义以及 A4p[23]。 cpp 保持。
标签: c++ exception greatest-common-divisor