gpt4 book ai didi

C++ 在 n*m 矩阵的每一行中找到最小值

转载 作者:太空宇宙 更新时间:2023-11-04 16:22:30 26 4
gpt4 key购买 nike

如何在 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>

希望对您有所帮助。

关于C++ 在 n*m 矩阵的每一行中找到最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15326233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com