我想提示用户加倍,然后存储最小和最大值,然后打印文本。这是我到目前为止的代码:
#include <iostream>
#include <string>
#include <cmath>
#include <vector>
using namespace std;
int main()
{
double min = 1000000000; // Here is my issue !
double max = -100000000; // Here is my issue !
for (double input; cin >> input;)
{
if (input == '|')
return 0;
else if (input < min)
{
min = input;
cout << "The smallest so far\n";
}
else if (input > max)
{
max = input;
cout << "The largest so far\n";
}
else
cout << "\n";
}
}
因此,我的代码可以正常工作并完成我想要的工作,但是我对如何处理最大和最小值的两倍有疑问。
我必须给他们一个值,以使我的程序正常运行,但给他们一个值,却可以使用户受益。如果我没有将它们设置得过高或过低,用户可能会输入不会触发程序的值。
所以我将它们设置为任意的高/低数字。
但我想知道是否有更好的解决方案。
最佳答案
正确的。
有!1000000000
确实可能还不够。您可能对numeric limits感兴趣。您想要的是:
double min = std::numeric_limits<double>::max();
double max = std::numeric_limits<double>::lowest();
它将两个值分别设置为最大和最小可表示
double
。不要忘记
#include <limits>
。关于c++ - 编程: Principles and Practice Using C++ chapter 4 drill step 6 : General question about numeric range,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56408275/