c语言将一个二维数组行和列元素互换,存到另一个二维数组中并输出这两个矩阵
时间: 2024-06-09 20:06:50 浏览: 130
013 C语言用二维数组实现矩阵转置
5星 · 资源好评率100%
假设要交换的二维数组为 `matrix`,行数为 `m`,列数为 `n`,交换后的二维数组为 `transposed`。可以使用如下代码实现:
```c
#include <stdio.h>
#define MAX_SIZE 100
int main() {
int matrix[MAX_SIZE][MAX_SIZE], transposed[MAX_SIZE][MAX_SIZE];
int m, n;
// 读入矩阵
printf("请输入矩阵的行数和列数:\n");
scanf("%d %d", &m, &n);
printf("请输入矩阵的元素:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 交换行列并存储到 transposed 数组中
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
transposed[i][j] = matrix[j][i];
}
}
// 输出矩阵和转置矩阵
printf("原矩阵:\n");
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
printf("转置矩阵:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
return 0;
}
```
注意,这里使用了 `#define` 定义了一个常量 `MAX_SIZE`,用于限制二维数组的最大大小。如果需要处理更大的矩阵,需要增加这个常量的值。
阅读全文