# C++ 程序：查找矩阵的转置

> 原文： [https://www.programiz.com/cpp-programming/examples/matrix-transpose](https://www.programiz.com/cpp-programming/examples/matrix-transpose)

#### 该程序从用户处获取阶数为`r * c`的矩阵，并计算该矩阵的转置。

要理解此示例，您应该了解以下 [C++ 编程](/cpp-programming "C++ tutorial")主题：

*   [C++ 数组](/cpp-programming/arrays)
*   [C++ 多维数组](/cpp-programming/multidimensional-arrays)

* * *

在此程序中，要求用户输入行数和列数。 在此程序中，`row`和`column`的值应小于 10。

然后，要求用户输入矩阵的元素。

程序将计算矩阵的转置并将其显示在屏幕上。

* * *

## 示例：查找矩阵的转置

```cpp
#include <iostream>
using namespace std;

int main() {
   int a[10][10], transpose[10][10], row, column, i, j;

   cout << "Enter rows and columns of matrix: ";
   cin >> row >> column;

   cout << "\nEnter elements of matrix: " << endl;

   // Storing matrix elements
   for (int i = 0; i < row; ++i) {
      for (int j = 0; j < column; ++j) {
         cout << "Enter element a" << i + 1 << j + 1 << ": ";
         cin >> a[i][j];
      }
   }

   // Printing the a matrix
   cout << "\nEntered Matrix: " << endl;
   for (int i = 0; i < row; ++i) {
      for (int j = 0; j < column; ++j) {
         cout << " " << a[i][j];
         if (j == column - 1)
            cout << endl << endl;
      }
   }

   // Computing transpose of the matrix
   for (int i = 0; i < row; ++i)
      for (int j = 0; j < column; ++j) {
         transpose[j][i] = a[i][j];
      }

   // Printing the transpose
   cout << "\nTranspose of Matrix: " << endl;
   for (int i = 0; i < column; ++i)
      for (int j = 0; j < row; ++j) {
         cout << " " << transpose[i][j];
         if (j == row - 1)
            cout << endl << endl;
      }

   return 0;
}
```

**输出**

```cpp
Enter rows and columns of matrix: 2
3

Enter elements of matrix:
Enter element a11: 1
Enter element a12: 2
Enter element a13: 9
Enter element a21: 0
Enter element a22: 4
Enter element a23: 7

Entered Matrix:
1  2  9

0  4  7

Transpose of Matrix:
1  0

2  4

9  7 
```