用函数c语言二维数组的转置
时间: 2024-10-29 20:09:36 浏览: 19
C语言动态分配二维数组
在C语言中,二维数组的转置是指将原数组的行变为列,列变行为行的过程。以下是一个简单的示例,展示如何通过遍历原数组并适当调整元素位置来完成二维数组的转置:
```c
#include <stdio.h>
void transpose(int arr[][n], int n) {
int transposed[n][n]; // 新建一个同样大小的转置数组
for (int i = 0; i < n; i++) { // 遍历原数组的每一行
for (int j = 0; j < n; j++) { // 对应的列下标
transposed[j][i] = arr[i][j]; // 将原数组元素放到新数组对应的位置
}
}
// 打印转置后的数组
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", transposed[i][j]);
}
printf("\n");
}
}
// 示例
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int n = sizeof(arr) / sizeof(arr[0]); // 获取行数(假设都是3x3矩阵)
transpose(arr, n);
return 0;
}
```
在这个例子中,`transpose` 函数接收一个二维数组 `arr` 和它的维度 `n`,然后创建一个新的转置数组 `transposed`,再逐一对应地复制原数组的元素到新的位置。
阅读全文