在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 = 22 Row 2: sum = 3+5+7+9 = 24 Row 3: sum = 2+4+6+8 = 20 Row 4: sum = 1+2+3+4 = 10
解决方法
该问题的一个简单解决方案是找到每行元素的总和并跟踪最大总和。然后在遍历所有行后返回总和最大的行。
程序来说明我们的解决方案的工作,
示例
#includeusing 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 "< 输出结果 排: 2 has the maximum sum which is 24