在C ++中的矩阵中查找总和最大的行
在这个问题中,我们给出了一个大小为 N*N 的矩阵 mat[][]。我们的任务是在矩阵中找到总和最大的行。
让我们举个例子来理解这个问题,
输入
mat[][] = {输出结果8, 4, 1, 9
3, 5, 7, 9
2, 4, 6, 8
1, 2, 3, 4
}
Row 2, sum 24
解释
Row 1: sum = 8+4+1+9 = 22Row 2: sum = 3+5+7+9 = 24
Row 3: sum = 2+4+6+8 = 20
Row 4: sum = 1+2+3+4 = 10
解决方法
该问题的一个简单解决方案是找到每行元素的总和并跟踪最大总和。然后在遍历所有行后返回总和最大的行。
程序来说明我们的解决方案的工作,
示例
#include <iostream>输出结果using namespace std;
#define R 4
#define C 4
void findMax1Row(int mat[R][C]) {
int maxSumRow = 0, maxSum = -1;
int i, index;
for (i = 0; i < R; i++) {
int sum = 0;
for(int j = 0; j < C; j++){
sum += mat[i][j];
}
if(sum > maxSum){
maxSum = sum;
maxSumRow = i;
}
}
cout<<"排 : "<<(maxSumRow+1)<<" has the maximum sum
which is "<<maxSum;
}
int main() {
int mat[R][C] = {
{8, 4, 1, 9},
{3, 5, 7, 9},
{2, 4, 6, 8},
{1, 2, 3, 4}
};
findMax1Row(mat);
return 0;
}
排 : 2 has the maximum sum which is 24
以上是 在C ++中的矩阵中查找总和最大的行 的全部内容, 来源链接: utcz.com/z/335597.html