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

Chương trình C++ tìm ma trận chuyển vị (transpose)


Ma trận là mảng hình chữ nhật các số sắp xếp dạng hàng và cột. Chuyển vị (transpose) của ma trận là ma trận mới nơi hàng của ma trận gốc thành cột và ngược lại. Ví dụ:

Ma trận cho trước:

1 2 3
4 5 6
7 8 9

Ma trận chuyển vị:

1 4 7
2 5 8
3 6 9

Chương trình tìm chuyển vị ma trận:

Ví dụ

#include <iostream>
using namespace std;

int main() {
  int transpose[10][10], r = 3, c = 2, i, j;
  int a[3][3] = {{1, 2}, {3, 4}, {5, 6}};
  cout << "Ma trận là:" << endl;
  for (i = 0; i < r; ++i) {
    for (j = 0; j < c; ++j)
      cout << a[i][j] << " ";
    cout << endl;
  }
  cout << endl;
  for (i = 0; i < r; ++i)
    for (j = 0; j < c; ++j)
      transpose[j][i] = a[i][j];
  cout << "Chuyển vị của ma trận:" << endl;
  for (i = 0; i < c; ++i) {
    for (j = 0; j < r; ++j)
      cout << transpose[i][j] << " ";
    cout << endl;
  }
  return 0;
}

Kết quả đầu ra

Ma trận là:
1 2
3 4
5 6
Chuyển vị của ma trận:
1 3 5
2 4 6

Trong chương trình, ma trận được khởi tạo. Hiển thị giá trị:

int a[3][3] = {{1, 2}, {3, 4}, {5, 6}};
cout << "Ma trận là:" << endl;
for (i = 0; i < r; ++i) {
  for (j = 0; j < c; ++j)
    cout << a[i][j] << " ";
  cout << endl;
}

Chuyển vị tính bằng vòng lặp lồng nhau:

for (i = 0; i < r; ++i)
  for (j = 0; j < c; ++j)
    transpose[j][i] = a[i][j];

Cuối cùng in chuyển vị:

cout << "Chuyển vị của ma trận:" << endl;
for (i = 0; i < c; ++i) {
  for (j = 0; j < r; ++j)
    cout << transpose[i][j] << " ";
  cout << endl;
}