在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

解决方法

该问题的一个简单解决方案是找到每行元素的总和并跟踪最大总和。然后在遍历所有行后返回总和最大的行。

程序来说明我们的解决方案的工作,

示例

#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

回到顶部