有人可以更正此代码吗?
#include <iostream>
using namespace std;
int main()
{
int a;
int b;
int c;
double d;
double e;
double f;
double g;
f = a / b;
g = b / a;
c = 0;
cin >> a;
cin >> b;
f = a / b;
g = b / a;
if (a == b)
{
cout << a << endl;
return 0;
}
else if (f == int(f))
{
cout << a << endl;
return 0;
}
start:
while (a * b > c)
c = c + 1;
d = c / a;
e = c / b;
if (d == int(d))
if (e == int(e))
{
cout << c << endl;
return 0;
}
else if (d != int(d))
goto start;
else if (e != int(e))
goto start;
if (a * b <= c)
cout << a * b << endl;
}
不管怎样
else if(f==int(f))
代码总是被执行。例如。我输入 3 和 5,尽管 3/5 给出小数,但 else if 始终执行并输出 3。我在这里缺少什么?
最佳答案
代码中导致 if 语句出现问题的主要错误是整数除法。您必须将操作数转换为 double 才能执行浮点除法:
cin >> a;
cin >> b;
f = double(a) / double(b);
g = double(b) / double(a);
还有其他问题需要解决,但这就是导致您提出问题的问题。
关于c++ - 无论条件是否为真 if 总是在 c++ 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60367097/