Computer >> Hướng Dẫn 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 ta sẽ không theo dõi một số thủ thuật phức tạp, chúng ta sẽ duyệt mảng theo cột, sau đó lấy tổng của mỗi cột, nếu tổng là 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); }

Kết quả

Index: 4, Column Sum: 31