我正在学习 Bjarne Stroustrup 的《编程原理与 C++ 实践》一书,目前我被第 4 章的第 5 个“练习”问题难住了。有一系列...
我正在阅读 Bjarne Stroustrup 的《编程原理与 C++ 实践》一书,目前我被第 4 章的第 5 个“练习”问题难住了。
有一系列问题旨在构建复杂的 If-Else If-Else 语句,我 认为 我理解其背后的逻辑。然而,这第 5 个问题却难倒了我:“更改程序,使其在写出两个数字相差小于 1.0/100 时,写出数字几乎相等。\”无论出于什么原因,我无法让“If 语句”在 0.5 以外的浮点值之间正确求值。或者换句话说,只有当两个值的差等于 0.5 时,它才会正确求出上面列出的输出。
这是我的代码:
int main() {
double i = 0;
double j = 0;
while (std::cin >> i >> j) {
std::cout << "\n";
std::cout << i << "\t" << j << "\n" << "\n";
if (i - j == 0.01) {
std::cout << "The Two Numbers Are Almost Equal" << "\n";
}
else if (i > j) {
std::cout << "The Larger Value Is " << i << "\n";
}
else if (i == j) {
std::cout << "The Numbers Are Equal" << "\n";
}
else {
std::cout << "The Larger Value Is " << j << "\n";
}
}
}
我甚至尝试用同样的前提创建一个基本的 if-else 语句,但编译器仍然无法根据第一个条件评估正确的语句。有什么帮助吗?