使用 C++ 寻找一个矩阵中的最大和列。


假设我们有一个 M x N 大小的矩阵。我们需要找到具有最大和的列。在这个程序中,我们不会采取一些技巧性方法,我们将按列遍历数组,然后获取每列的和,如果和最大,则打印它和列索引。

示例

#include<iostream>
#define M 5
#define N 5
using namespace std;
int colSum(int colIndex, int mat[M][N]){
   int sum = 0;
   for(int i = 0; i<M; i++){
      sum += mat[i][colIndex];
   }
   return sum;
}
void maxColumnSum(int mat[M][N]) {
   int index = -1;
   int maxSum = INT_MIN;
   for (int i = 0; i < N; i++) {
      int sum = colSum(i, mat);
      if (sum > maxSum) {
         maxSum = sum;
         index = i;
      }
   }
   cout << "Index: " << index << ", Column Sum: " << maxSum;
}
int main() {
   int mat[M][N] = {
      { 1, 2, 3, 4, 5 },
      { 5, 3, 1, 4, 2 },
      { 5, 6, 7, 8, 9 },
      { 0, 6, 3, 4, 12 },
      { 9, 7, 12, 4, 3 },
   };
   maxColumnSum(mat);
}

输出

Index: 4, Column Sum: 31

更新于:29-Oct-2019

396 次浏览

开启你的职业生涯

完成课程获得认证

开始
广告