求n*m矩阵每一行的最小值
C++ Find the minimum value in every row of a n*m matrix
如何在n*m矩阵的每一行中找到最小值,并将这些值放入新数组?到目前为止,我有这段代码,但它不能正常工作:
void min(const int t[max_city][max_bird], int allmin[], int n, int m)
{
int min=t[0][0];
for(int i=0; i<n; ++i)
{
for(int j=0; j<m; ++j)
{
if(t[i][j]<min)
{
min=t[i][j];
}
}
allmin[i]=min;
cout << i+1 << ". min: " << allmin[i] << endl;
}
}
在第一个循环中声明min
,并在那里初始化它:
for(int i=0; i<n; ++i)
{
int min= INT_MAX; //do this here so that it gets initialized each time!
for(int j=0; j<m; ++j)
{
//your code
}
//etc
}
使用INT_MAX
,包括<climits>
。
使用std::min_element
,您的函数可以重写为:
void min(const int t[max_city][max_bird], int allmin[], int n, int m)
{
for(int i=0; i<n; ++i)
{
allmin[i] = *std::min_element(t[i], t[i] + m);
}
}
它变得如此短!
函数std::min_element
返回指向最小元素的指针,因此对返回的指针解引用以获得(最小元素的)值。
要在你的程序中使用std::min_element
,你必须包含这个头文件:
#include <algorithm>
希望对你有帮助。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 使用递归的数组的最小值.这是怎么回事
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 在二维数组中查找最小值和最大值?
- 有没有办法使用递归函数找到数组中最小值的 INDEX?C++
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 查找数组中第一个最小值和最后一个最大值元素之间的算术平均值
- C++ 函数,用于查找传入的 N 个数字的平均值、总和、最小值和最大值
- txt 文件中浮点数的最大和最小值
- 余数运算符的等效操作,用于处理低于允许的最小值
- 需要使用模板查找数组的第二个最小和最小值
- CUDA - 将 float3 数组的 (x,y,z) 分量的最小值/最大值分开?
- 查找包含 N 个元素的数组的最小值和最大值
- 错误C++在Visual Studio 2019中使用numeric_limits的长双精度最小值/最大值
- 是否存在用于 C 或 C++ 中常见数学运算(例如最小值、最大值和平均值)的可导入库?
- 如何在 c++ 中创建对的优先级队列.这会弹出具有最小值的元素.默认的弹出最大值
- 将最小值整数转换为无符号长整型
- 使用与 openmp C++并行的循环计算矩阵中每一行的最小值
- C++在二维数组中的每一行和每一列中查找最小值和最大值
- 求n*m矩阵每一行的最小值