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

Tìm dấu vết của ma trận được hình thành bằng cách cộng ma trận hàng-chủ yếu và cột-chủ yếu trong C++


Trong hướng dẫn này, ta sẽ viết chương trình tìm dấu vết của ma trận được hình thành từ ma trận hàng-chủ yếu và cột-chủ yếu.

Hãy xem cách hình thành ma trận hàng-chủ yếu và cột-chủ yếu khi biết cấp ma trận.

Cấp − 3 x 3

Ma trận hàng-chủ yếu (Row Major) −

123
456
789

Ma trận cột-chủ yếu (Column Major) −

147
258
369

Ta có hai ma trận hàng-chủ yếu và cột-chủ yếu. Bây giờ ta cộng hai ma trận này. Dấu vết của ma trận kết quả là kết quả cần tìm.

Hãy viết mã giải quyết. Cần hoàn thành 4 bước:

  • Tạo ma trận hàng-chủ yếu.
  • Tạo ma trận cột-chủ yếu.
  • Cộng hai ma trận và lưu ma trận kết quả.
  • Tìm dấu vết của ma trận kết quả và in ra.

Ví dụ

Xem mã dưới đây:

#include <iostream> #include <bits/stdc++.h> #include <regex> using namespace std; int traceOfRowAndColumnMajorMatrices(int m, int n) {    int row_major[m][n], column_major[m][n], addition_result[m][n], count = 1;    for (int i = 0; i < m; i++) {       for (int j = 0; j < n; j++) {          row_major[i][j] = count;          count += 1;       }    }    count = 1;    for (int i = 0; i < m; i++) {       for (int j = 0; j < n; j++) {          column_major[j][i] = count;          count += 1;       }    }    for (int i = 0; i < m; i++) {       for (int j = 0; j < n; j++) {          addition_result[j][i] = row_major[i][j] + column_major[i][j];       }    }    int trace = 0;    for (int i = 0; i < m; i++) {       for (int j = 0; j < n; j++) {          if (i == j) {             trace += addition_result[i][j];          }       }    }    return trace; } int main() {    int m = 3, n = 3;    cout << traceOfRowAndColumnMajorMatrices(m, n) << endl;    return 0; }

Đầu ra

Nếu thực thi chương trình trên, bạn sẽ nhận được kết quả sau:

30

Kết luận

Nếu bạn có thắc mắc, hãy đề cập trong phần bình luận.