Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm hàng có tổng lớn nhất trong ma trận trong C++

Trong bài toán này, cho ma trận mat[][] kích thước N*N. Nhiệm vụ là tìm hàng có tổng lớn nhất.

Ví dụ minh họa:

Đầu vào

mat[][] = { {8, 4, 1, 9}, {3, 5, 7, 9}, {2, 4, 6, 8}, {1, 2, 3, 4} }

Đầu ra

Row 2, sum 24

Giải thích

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

Phương pháp giải

Tính tổng từng hàng, theo dõi tổng lớn nhất. Sau khi duyệt xong trả về hàng có tổng lớn nhất.

Chương trình minh họa:

Ví dụ

#include <iostream> 
using namespace std; 

#define R 4 
#define C 4 

void findMax1Row(int mat[R][C]) { 
    int maxSumRow = 0, maxSum = -1; 
    for (int 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<<"Row : "<<(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; 
}

Kết quả

Row : 2 has the maximum sum which is 24