我想提示用户加倍,然后存储最小和最大值,然后打印文本。这是我到目前为止的代码:

#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/

10-13 07:11