当前位置:首页 > 行业动态 > 正文

c语言中转置矩阵怎么写

转置矩阵是将一个矩阵的行变为列,列变为行的变换操作,在C语言中,可以使用二维数组来表示矩阵,并通过嵌套循环来实现矩阵的转置,下面是详细的步骤和小标题:

1、定义矩阵和结果矩阵的大小

#define ROWS 3 // 行数
#define COLS 4 // 列数
int matrix[ROWS][COLS]; // 原始矩阵
int transpose[COLS][ROWS]; // 转置后的矩阵

2、输入原始矩阵的元素

printf("请输入一个 %d x %d 的矩阵:
", ROWS, COLS);
for (int i = 0; i < ROWS; i++) {
    for (int j = 0; j < COLS; j++) {
        scanf("%d", &matrix[i][j]);
    }
}

3、实现矩阵的转置操作

// 遍历原始矩阵的每个元素,将其值赋给转置矩阵对应的位置
for (int i = 0; i < ROWS; i++) {
    for (int j = 0; j < COLS; j++) {
        transpose[j][i] = matrix[i][j];
    }
}

4、输出转置后的矩阵

printf("转置后的矩阵为:
");
for (int i = 0; i < COLS; i++) {
    for (int j = 0; j < ROWS; j++) {
        printf("%d ", transpose[i][j]);
    }
    printf("
");
}

完整的代码如下所示:

#include <stdio.h>
#define ROWS 3 // 行数
#define COLS 4 // 列数
int main() {
    int matrix[ROWS][COLS]; // 原始矩阵
    int transpose[COLS][ROWS]; // 转置后的矩阵
    printf("请输入一个 %d x %d 的矩阵:
", ROWS, COLS);
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    // 转置操作
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            transpose[j][i] = matrix[i][j];
        }
    }
    // 输出转置后的矩阵
    printf("转置后的矩阵为:
");
    for (int i = 0; i < COLS; i++) {
        for (int j = 0; j < ROWS; j++) {
            printf("%d ", transpose[i][j]);
        }
        printf("
");
    }
    return 0;
}
0