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

Kiểm tra hai ma trận có giống nhau hay không trong C++

Cho hai ma trận M1[r][c] và M2[r][c]. Kiểm tra xem chúng có giống hệt nhau (identical) hay không. Hai ma trận giống nhau khi: cùng số hàng/cột, và M1[i][j] = M2[i][j] với mọi i,j.

Ví dụ

Input: a[4][4] = {{2,2,2,2},{2,2,2,2},{3,3,3,3},{3,3,3,3}}
       b[4][4] = {{2,2,2,2},{2,2,2,2},{3,3,3,3},{3,3,3,3}}
Output: ma trận giống nhau

Input: a[4][4] = {{2,2,2,2},{2,2,1,2},{3,3,3,3},{3,3,3,3}}
       b[4][4] = {{2,2,2,2},{2,2,5,2},{3,3,3,3},{3,3,3,3}}
Output: ma trận không giống nhau

Cách tiếp cận

Duyệt cả hai ma trận, so sánh a[i][j] == b[i][j]. Nếu đúng với tất cả thì giống nhau.

Thuật toán

BẮT ĐẦU
    #define n 4
    Hàm kiemTra(int a[][n], int b[][n])
        Với i từ 0 đến n-1
            Với j từ 0 đến n-1
                Nếu a[i][j] != b[i][j] trả về 0
        Trả về 1
    main()
        Khai báo a, b
        Nếu kiemTra(a,b) in "giống nhau" ngược lại "không giống nhau"
KẾT THÚC

Ví dụ mã C++

#include <bits/stdc++.h>
#define n 4
using namespace std;

int kiemTra(int a[][n], int b[][n]){
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (a[i][j] != b[i][j])
                return 0;
    return 1;
}

int main(){
    int a[n][n] = {{2,2,2,2},{2,2,2,2},{3,3,3,3},{3,3,3,3}};
    int b[n][n] = {{2,2,2,2},{2,2,2,2},{3,3,3,3},{3,3,3,3}};
    if (kiemTra(a, b))
        cout << "ma trận giống nhau";
    else
        cout << "ma trận không giống nhau";
    return 0;
}

Kết quả đầu ra

ma trận giống nhau