c语言 编写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
时间: 2024-05-06 21:16:14 浏览: 136
可以按照以下的代码实现:
```c
#include <stdio.h>
void transpose(int arr[3][3]) {
int temp;
for (int i = 0; i < 3; i++) {
for (int j = i; j < 3; j++) {
// 交换 arr[i][j] 和 arr[j][i]
temp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = temp;
}
}
}
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
printf("原始数组:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
transpose(arr);
printf("转置后的数组:\n");
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果:
```
原始数组:
1 2 3
4 5 6
7 8 9
转置后的数组:
1 4 7
2 5 8
3 6 9
```
在 `transpose` 函数中,我们使用一个 `temp` 变量来保存交换的值。然后使用两个嵌套的循环来遍历数组,交换每个元素与其对应的行列元素。最后在主函数中调用 `transpose` 函数并输出结果。
阅读全文