在数组中查找最小值

傻瓜

我有两个数组:

int playerSums[9] = { };
string playerNames[9] = { };

我试图获取数组中最小值playerSums以及该值数组索引

到目前为止,这是我尝试过的方法:

if (playerNames[index] == "End" || playerNames[index] == "end") {
    int lowestValue = playerSums[0];
    for (i = 1; i < sizeof(playerSums) / sizeof(playerSums[0]); i++) {
        if (playerSums[i] < lowestValue || lowestValue != 0)
            lowestValue = playerSums[i]; 
    }
    cout << index[playerNames] << " had the lowest values and got the sum ";
    cout << lowestValue << endl;
}

playerSums例如,如果只有3个玩家在玩,即仅填充了阵列中的3个元素(其余元素等于零),如何找到并显示阵列中的最小值

我需要索引来显示获得最小价值的玩家的姓名。

来自莫斯科的弗拉德

您可以使用标std::min_element<algorithm>声明的标准算法来查找具有最小和的元素。例如

#include <algorithm>

int *min = std::min_element( playerSums, playerSums + 3 );

std::cout <<  playerNames[min - playerSums] 
          << " had the lowest values and got the sum " << *min
          << std::endl;

可以使用标准函数编写相同的内容std::beginstd::endstd::distance在标头中声明<iterator>

#include <algorithm>
#include <iterator>

int *min = std::min_element( std::begin( playerSums ), std::end( playerSums ) );

std::cout <<  playerNames[ std::distance( playerSums, min )] 
          << " had the lowest values and got the sum " << *min
          << std::endl;

除了使用该算法外,您还可以编写类似于该算法的自己的函数。例如

size_t min_sum( int playerSums[], size_t n )
{
   size_t min = 0;

   for ( size_t i = 1; i < n; i++ )
   {
      if ( playerSums[min] < playerSums[i] ) min = i;
   }

   return min;
}

size_t min = min_sum( playerSums, sizeof( playerSums ) / sizeof( *playerSums )  );

std::cout <<  playerNames[min] 
          << " had the lowest values and got the sum " << playerSums[min]
          << std::endl;

如果您需要跳过等于零的数组元素,则该函数将如下所示

size_t min_sum( int playerSums[], size_t n )
{
   size_t min = 0;

   while ( min < n && playerSums[i] == 0 ) ++min;

   for ( size_t i = min; i < n; i++ )
   {
      if ( playerSums[min] < playerSums[i] ) min = i;
   }

   return min;
}

size_t min = min_sum( playerSums, sizeof( playerSums ) / sizeof( *playerSums )  );

if ( min != sizeof( playerSums ) / sizeof( *playerSums ) )
{   
    std::cout <<  playerNames[min] 
              << " had the lowest values and got the sum " << playerSums[min]
              << std::endl;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在数组中查找最小值> 0

来自分类Dev

在数组中查找最小值(Intel8086)

来自分类Dev

在数组中查找最小值(Intel8086)

来自分类Dev

查找值,将其放在数组中,然后在数组VBA中查找最小值

来自分类Dev

在数组Java中查找最小值和第二最小值

来自分类Dev

在数组中寻找最小值

来自分类Dev

在数组中查找最小值和最大值的有效方法

来自分类Dev

在数组C ++中查找最小值/最大值的索引

来自分类Dev

在数组Javascript中查找最小值和最大值

来自分类Dev

Java –在数组中查找最小值和最大值

来自分类Dev

在数组中查找最小值和最大值

来自分类Dev

在数组Perl中查找为最大次数的最小值

来自分类Dev

在没有Math.min的情况下在数组中查找最小值

来自分类Dev

使用LINQ在数组C#中查找重复的最小值

来自分类Dev

在数据表的行中查找最小值

来自分类Dev

在 matlab 中查找在数组或矩阵范围内计算的最小值或最大值的索引

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

从包含对象的数组中查找最小值的最佳方法

来自分类Dev

如何在MIPS中查找数组的最小值

来自分类Dev

JavaScript(在旋转排序数组中查找最小值)

来自分类Dev

查找数组中int数的最小值(Java)

来自分类Dev

查找数组中两个最小值的索引

来自分类Dev

数组中的最小值

来自分类Dev

Postgres-查找数组的最小值

来自分类Dev

查找python数据数组的最小值

来自分类Dev

R:在数据框中查找列列表的最大值/最小值

来自分类Dev

在数字序列中查找错过的最大值和最小值

来自分类Dev

在行组中查找最小值

Related 相关文章

热门标签

归档