C 语言将二维数组行和列元素互换,存到另一个二维数组中
时间: 2023-12-09 08:01:15 浏览: 160
可以使用一个嵌套循环来实现二维数组行和列元素互换的功能,然后将结果存储到另一个二维数组中。
以下是示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 4
void transpose(int mat[][COLS], int res[][ROWS]) {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
res[j][i] = mat[i][j];
}
}
}
int main() {
int mat[ROWS][COLS] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};
int res[COLS][ROWS];
transpose(mat, res);
int i, j;
printf("Original matrix:\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", mat[i][j]);
}
printf("\n");
}
printf("\nTransposed matrix:\n");
for (i = 0; i < COLS; i++) {
for (j = 0; j < ROWS; j++) {
printf("%d ", res[i][j]);
}
printf("\n");
}
return 0;
}
```
在上面的示例代码中,我们首先定义了一个 `transpose` 函数,该函数接收两个参数,分别是原始矩阵和结果矩阵。然后,在函数中使用嵌套循环来遍历原始矩阵中的每个元素,并将其存储到结果矩阵中相应的位置上。
接下来,在主函数中,我们定义了一个原始矩阵和一个结果矩阵,并将原始矩阵作为参数传递给 `transpose` 函数。最后,我们分别打印出原始矩阵和结果矩阵的内容。
注意,这里我们使用了 `#define` 预处理指令来定义了 `ROWS` 和 `COLS` 两个常量,以便在程序中多次使用它们。
阅读全文