gpt4 book ai didi

c++ - 意外的浮点异常 - C++

转载 作者:行者123 更新时间:2023-11-30 02:18:02 26 4
gpt4 key购买 nike

这个程序应该计算最小公倍数。它不会出现除零,也不会出现奇怪的操作(据我所知),但它会在某些时候中断。该程序似乎为任何一对值返回 "Floating point exception (core dumped)"。*前提条件:a >= 1 且 b >= 1。代码:

int mcd(int x, int y) { //computes greatest common divisor
if (x == 0) return y;
return mcd(y, x % y);
}

int mcm(int x, int y) { //computes smallest common multiple
return x * y / mcd(x, y);
}

int main() {
int a, b;
int counter = 0;
while (cin >> a >> b) {
++counter;
cout << "#" << counter
<< " : " << mcm(a, b) << endl;
}
}

是什么导致了这种行为?

最佳答案

您除以零是因为第 2 行中的停止条件错误。正确的是:

if (y == 0) return x;

来源:Euclidean Algorithm

关于c++ - 意外的浮点异常 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52803125/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com