Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để tìm chuyển vị của ma trận

Ma trận là một dãy số hình chữ nhật được sắp xếp dưới dạng hàng và cột. Chuyển vị của một ma trận là một ma trận mới, trong đó các hàng của ban đầu là các cột bây giờ và ngược lại. Ví dụ.

Một ma trận được đưa ra dưới đây -

1 2 3
4 5 6
7 8 9

Chuyển vị của ma trận trên như sau.

1 4 7
2 5 8
3 6 9

Một chương trình để tìm chuyển vị của một ma trận như sau -

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<<"The matrix is:"<<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<<"The transpose of the matrix is:"<<endl;
   for(i=0; i<c; ++i) {
      for(j=0; j<r; ++j)
      cout<<transpose[i][j]<<" ";
      cout<<endl;
   }
   return 0;
}

Đầu ra

The matrix is:
1 2
3 4
5 6

The transpose of the matrix is:
1 3 5
2 4 6

Trong chương trình trên, ma trận được khởi tạo. Sau đó, các giá trị của nó được hiển thị. Điều này được hiển thị trong đoạn mã sau.

int a[3][3] = { {1, 2} , {3, 4} , {5, 6} };
cout<<"The matrix is:"<<endl;
for(i=0; i<r; ++i) {
   for(j=0; j<c; ++j)
   cout<<a[i][j]<<" ";
   cout<<endl;
}

Chuyển vị của ma trận được tính bằng vòng lặp for lồng nhau. Điều này được đưa ra như sau.

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

Cuối cùng, chuyển vị thu được và nó được in trên màn hình. Điều này được thực hiện với đoạn mã sau.

cout<<"The transpose of the matrix is:"<<endl;
for(i=0; i<c; ++i) {
   for(j=0; j<r; ++j)
   cout<<transpose[i][j]<<" ";
   cout<<endl;
}