Computer >> Máy Tính >  >> Lập trình >> C ++

Tìm cột có tổng lớn nhất trong Ma trận bằng C ++.

Giả sử chúng ta có một ma trận kích thước M x N. Chúng ta phải tìm cột có tổng lớn nhất. Trong chương trình này, chúng tôi sẽ không làm theo một số cách tiếp cận phức tạp, chúng tôi sẽ duyệt qua cột của mảng, sau đó lấy tổng của mỗi cột, nếu tổng là giá trị lớn nhất thì in ra tổng và chỉ số cột.

Ví dụ

#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);
}

Đầu ra

Index: 4, Column Sum: 31