c++ - 二维数组的最小/最大元素

标签 c++ arrays algorithm

float allmin[column];
float allmax[column];
float min= std::numeric_limits<float>::max();
float max= std::numeric_limits<float>::min();  

for(int y = 0; y < column; y++)
   {

    for(int x = 0; x < row; x++)
       {
         allmin[y] = std::min(matrix[x][y], min);
         allmax[y] = std::max(matrix[x][y], max);
       }

   cout << "Mins " << allmin[y] << "\n";
}

我需要每列中的最小元素。我的矩阵是 250x6 ,它打印的是矩阵的最后一行。

最佳答案

你需要两个更正:

不要对每一列使用相同的变量,而是使用不同的变量,例如直接使用 allminallmax 行。

在进入循环之前初始化它。一个经典的解决方案是用行的第一个元素对其进行初始化,然后检查循环中的每个下一个元素。

for(int y = 0; y < column; y++)
   {
    allmin[y] = matrix[0][y];
    allmax[y] = matrix[0][y];
    for(int x = 1; x < row; x++)
       {
         allmin[y] = std::min(matrix[x][y], allmin[y]);
         allmax[y] = std::max(matrix[x][y], allmax[y]);
       }

   cout << "Mins " << allmin[y] << "\n";
}

关于c++ - 二维数组的最小/最大元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36759559/

相关文章:

javascript 如何将数组转换为对象

JavaScript 多维数组或任何存储大量数据以进行计算的替代方案

algorithm - 客户端服务请求的隐式 "Authentication"

java - 在java中查找子集

c++ - 如何在 C++ 项目中使用 C gnutls API

c++ - 是否可以在给定 n 的情况下执行 n 个嵌套 "loops(any)"(具有不同的循环控制变量)?

C++ boost enable_if 问题

c++ - VS 2010,移动构造函数仅在 move() 之后到达并且比复制构造函数慢?

java - 序列化给出了错误的对象大小

arrays - 排名和不排名结合约束