所以我让这个程序运行,但现在我输入的任何数字都变成了非常大的数字。我需要为数学计算添加标题吗?或者是否有类似 C 语言的 C++ 的 printf 函数?
#include <iostream> // Necessary
using namespace std;
#define mMaxOf2(max, min) ((max) > (min) ? (max) : (min))
#define mMaxOf3(Min, Mid, Max)\
{\
mMaxOf2(mMaxOf2((Min), (Mid)),(Max))\
}
int main()
{
double primary;
double secondary;
double tertiary;
long double maximum = mMaxOf3(primary, secondary, tertiary);
cout << "Please enter three numbers: ";
cin >> primary >> secondary >> tertiary;
cout << "The maximum of " << primary << " " << secondary << " " << tertiary;
cout << " using mMaxOf3 is " << maximum;
return 0;
}
最佳答案
问题是您在获得用户输入之前计算最大值
。像这样重新排列您的代码:
double primary;
double secondary;
double tertiary;
long double maximum;
cout << "Please enter three numbers: ";
cin >> primary >> secondary >> tertiary;
maximum = mMaxOf3(primary, secondary, tertiary);
cout << "The maximum of " << primary << " " << secondary << " " << tertiary;
cout << " using mMaxOf3 is " << maximum;
永远记住代码是顺序执行的,或者您可以说逐行。对于 C++,对变量的任何更改都会影响使用这些修改后的变量的后续指令的行为。在你的例子中,你首先计算了 maximum
before 你已经正确设置了 primary
、secondary
和 第三级
,mMaxOf3
中需要。
请注意,primary
、secondary
、tertiary
和 maximum
未初始化是完全可以的程序中的值。
关于c++ - 程序编译并执行,但输出的最大值不合理。 long double如何显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13005557/