c语言中转置矩阵怎么写
- 行业动态
- 2024-03-31
- 1
转置矩阵是将一个矩阵的行变为列,列变为行的变换操作,在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; }