寻找For循环数组C ++中最大和最小值的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寻找For循环数组C ++中最大和最小值的值相关的知识,希望对你有一定的参考价值。
好吧,我的代码(如下所示)基本上可以获得全年最大和最小的温度值。现在这样有效,但是当我遇到问题时,我想出一个解决方案,当数组中找到最大值时,将增加值“j”。我需要这个,因为该程序的主要目标是输出找到最大值和最小值的月份。我已经在这段代码中编写了一个函数,它将递增的值转换为字符串月份。
TLDR:我需要找出如何知道“j”的值是什么,我的程序找到了最大值和最小值。
所以,如果你们能够提供任何见解,我将如何实现这一点,这将是太棒了!
//Gathering Largest Temperature:
for(int j = 0; j < size; j++)
{
if(yearData[j].highTemperature > highestTemperature)
highestTemperature = yearData[j].highTemperature;
}
//Gathering Smallest Temperature:
for(int j = 0; j < size; j++)
{
if(yearData[j].lowTemperature < lowestTemperature)
lowestTemperature = yearData[j].lowTemperature;
}
答案
//Gathering Largest Temperature:
auto highestTemperature = yearData[0].highTemperature;
int highestTemperatureDate = 0;
for(int j = 0; j < size; j++)
{
if(yearData[j].highTemperature > highestTemperature)
{
highestTemperature = yearData[j].highTemperature;
highestTemperatureDate = j;
}
}
//Gathering Smallest Temperature:
auto lowestTemperature = yearData[0].lowTemperature;
int smallestTemperatureDate = 0;
for (int j = 0; j < size; j++)
{
if (yearData[j].lowTemperature < lowestTemperature)
{
lowestTemperature = yearData[j].lowTemperature;
smallestTemperatureDate = j;
}
}
我为最小和最高温度添加了一个int
另一答案
使用std,您可能会:
//Gathering Largest Temperature:
auto max = std::max_element(std::begin(yearData), std::end(yearData),
[](const auto& lhs, const auto& rhs){
return lhs.highTemperature < return rhs.highTemperature;
});
auto max_index = std::distance(std::begin(yearData), max);
// Gathering Smallest Temperature:
auto min = std::min_element(std::begin(yearData), std::end(yearData),
[](const auto& lhs, const auto& rhs){
return lhs.lowTemperature < return rhs.lowTemperature;
});
auto min_index = std::distance(std::begin(yearData), min);
以上是关于寻找For循环数组C ++中最大和最小值的值的主要内容,如果未能解决你的问题,请参考以下文章
C语言编程:任意输入10个整数放入数组中,然后求其中的最大值和最小值