gpt4 book ai didi

c++ - 编程 : Principles and Practice Using C++ chapter 4 drill step 6 : General question about numeric range

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:28 25 4
gpt4 key购买 nike

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

#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";
}
}

所以我的代码工作正常并且做我想做的,但我对处理双最小值和最大值的方式有疑问。我必须给他们一个让我的程序运行的值(value),但给他们一个影响用户的值(value)。如果我没有将它们设置得足够高或足够低,用户可能会输入不会触发程序的值。所以我将它们设置为任意高/低数字。但我想知道是否有更好的解决方案。

最佳答案

If I don't set them high or low enough the user might input value that don't trigger the program.

正确。

But I wonder if there is a better solution for this.

有!

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com