如何在C语言中实现二维数组的转置操作?
时间: 2024-12-21 19:30:44 浏览: 5
c代码-二维数组。
在C语言中,二维数组的转置操作是指将原数组的行变成列,列变成行。下面是一个简单的示例,展示如何通过临时变量交换元素来实现这个过程:
```c
#include <stdio.h>
void transpose(int source[][n], int target[][n], int m, int n) {
// 确保源矩阵和目标矩阵有相同的维度
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
// 将source[i][j] 的值放到 target[j][i]
target[j][i] = source[i][j];
}
}
}
// 示例使用
#define ROWS 3
#define COLS 4
int main() {
int original[ROWS][COLS] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
int transposed[COLS][ROWS];
transpose(original, transposed, ROWS, COLS);
// 打印转置后的矩阵
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
return 0;
}
```
在这个例子中,`transpose` 函数接收原数组、目标数组以及它们的行数和列数作为参数,通过两层循环遍历并交换对应位置的元素完成转置。
阅读全文