- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以使用什么代码来打印出用户在此数组中输入的最高值和最低值?该程序需要取用户输入的平均值(我已经这样做了)。现在我需要做的就是让程序打印出用户输入的最高值和最低值。
#include <iostream>
using namespace std;
int main()
{
float days = 0;
float temperatures [50];
float temptotal = 0;
float average = 0;
cout << "Enter the number of days: ";
cin >> days;
if (days > 50)
{
cout << "You may only enter temperatures for 50 days." << endl;
return 0;
}
for (int i = 1; i <= days; i++)
{
cout << "Enter the temperature for day number " << i << ": ";
cin >> temperatures[50];
temptotal += temperatures[50];
}
average = (temptotal / days);
cout << "The temperature average is: " << average << endl;
return 0;
}
最佳答案
有很多方法可以做到这一点。但一个简单的方法是检查添加到数组的当前值是否是最低/最高。首先,您需要假设最小值对应一个非常大的数字,最大值对应一个非常小的数字。
float min = 9999999999999;
float max = -9999999999999;
在此之后,您可以比较该值是低于最小值还是高于最大值。由于初始值与预期值相反,因此第一个值将设置为最小值和最大值,然后将其他值与该值进行比较。通过这样做,您将仅保留最低和最高值。
if(temperatures[i] > max)
max = temperatures[i];
if(temperatures[i] < min)
min = temperatures[i];
如果你注意到了,我使用了 temparatures[i]
.如果您总是在索引 50 处添加用户输入的值,那么您总是会覆盖最后输入的值。此外,数组的索引通常从 0 而不是 1 开始,因此您的 for 循环将如下所示:for (int i = 0; i < days; i++)
.
我编辑了你的代码,这就是我最终得到的:
#include <iostream>
using namespace std;
int main()
{
float days = 0;
float temperatures [50];
float temptotal = 0;
float average = 0;
cout << "Enter the number of days: ";
cin >> days;
if (days > 50)
{
cout << "You may only enter temperatures for 50 days max." << endl;
return 0;
}
float min = 9999999999999;
float max = -9999999999999;
for (int i = 0; i < days; i++)
{
cout << "Enter the temperature for day number " << i << ": ";
cin >> temperatures[i];
temptotal += temperatures[i];
if(temperatures[i] > max)
max = temperatures[i];
if(temperatures[i] < min)
min = temperatures[i];
}
average = (temptotal / days);
cout << "The temperature average is: " << average << endl;
cout << "The highest temperature is: " << max << endl;
cout << "The lowest temperature is: " << min << endl;
return 0;
}
希望对您有所帮助!
关于c++ - 我怎样才能找到这个数组中的最高值和最低值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27007837/
非常基本的问题:如何找到随机矩阵中的最高值或最低值。我知道有可能说: a = find(A>0.5) 但我正在寻找的更像这样: A = rand(5,5) A = 0.9388 0.9498
我有这张表: BP1 BP2 ----------------------------- 140 80 153 8
我在这个网站上寻找与查找程序中最高/最低数据值有关的答案,但我发现的只是与数组有关的代码。我的代码中没有数组,因此我假设查找最高值或最低值的技术将以不同的方式执行。 如果您查看我的代码,您可以在输出的
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我是一名优秀的程序员,十分优秀!