利用二维数组实现矩阵转置,键盘输入矩阵行列和元素,显示初始矩阵,将矩阵转置,显示转置后的矩阵。使用c语言
时间: 2024-12-13 10:06:39 浏览: 31
在C语言中,可以利用二维数组来实现矩阵转置。首先,你需要获取用户输入的矩阵的行数和列数,以及每个元素的值。然后,你可以创建原始矩阵,并打印出来。接着,通过遍历和交换两个维度的元素来完成转置操作,最后展示转置后的矩阵。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#define ROWS 5
#define COLS 4
// 函数声明,用于转置矩阵
void transpose(int matrix[ROWS][COLS], int transposed_matrix[COLS][ROWS]);
int main() {
int matrix[ROWS][COLS];
int transposed_matrix[COLS][ROWS];
// 输入矩阵元素
printf("请输入矩阵的行数和列数: ");
scanf("%d %d", &ROWS, &COLS);
printf("请输入矩阵元素:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
scanf("%d", &matrix[i][j]);
printf("(%d,%d): ", i, j); // 显示输入过程
}
printf("\n");
}
// 转置矩阵
transpose(matrix, transposed_matrix);
// 输出原矩阵
printf("原矩阵:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("(%d,%d): %d ", i, j, matrix[i][j]);
}
printf("\n");
}
// 输出转置后的矩阵
printf("转置后的矩阵:\n");
for (int i = 0; i < COLS; i++) {
for (int j = 0; j < ROWS; j++) {
printf("(%d,%d): %d ", i, j, transposed_matrix[i][j]);
}
printf("\n");
}
return 0;
}
// 矩阵转置函数
void transpose(int matrix[ROWS][COLS], int transposed_matrix[COLS][ROWS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < i; j++) { // 注意交换两维的索引
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i]; // 转置
matrix[j][i] = temp;
}
}
}
```
运行这个程序,会提示用户输入矩阵的信息并显示结果。矩阵转置部分是通过临时变量和循环内的元素交换来实现的。
阅读全文
相关推荐


















