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

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

#### 在此示例中，您将学习在 C 编程中查找矩阵的转置。

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

*   [C 数组](/c-programming/c-arrays)
*   [C 多维数组](/c-programming/c-multi-dimensional-arrays)

* * *

矩阵的转置是通过交换行和列而获得的新矩阵。

在该程序中，要求用户输入行数`r`和列数`c`。 在此程序中，它们的值应小于 10。

然后，要求用户输入矩阵的元素（顺序为`r*c`）。

然后，下面的程序计算矩阵的转置并将其打印在屏幕上。

* * *

## 查找矩阵转置的程序

```c
#include <stdio.h>
int main() {
    int a[10][10], transpose[10][10], r, c, i, j;
    printf("Enter rows and columns: ");
    scanf("%d %d", &r, &c);

    // Assigning elements to the matrix
    printf("\nEnter matrix elements:\n");
    for (i = 0; i < r; ++i)
        for (j = 0; j < c; ++j) {
            printf("Enter element a%d%d: ", i + 1, j + 1);
            scanf("%d", &a[i][j]);
        }

    // Displaying the matrix a[][]
    printf("\nEntered matrix: \n");
    for (i = 0; i < r; ++i)
        for (j = 0; j < c; ++j) {
            printf("%d  ", a[i][j]);
            if (j == c - 1)
                printf("\n");
        }

    // Finding the transpose of matrix a
    for (i = 0; i < r; ++i)
        for (j = 0; j < c; ++j) {
            transpose[j][i] = a[i][j];
        }

    // Displaying the transpose of matrix a
    printf("\nTranspose of the matrix:\n");
    for (i = 0; i < c; ++i)
        for (j = 0; j < r; ++j) {
            printf("%d  ", transpose[i][j]);
            if (j == r - 1)
                printf("\n");
        }
    return 0;
} 
```

**输出**

```c
Enter rows and columns: 2
3

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

Entered matrix:
1  4  0
-5  2  7

Transpose of the matrix:
1  -5
4  2
0  7 
```