c语言编写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。
时间: 2024-05-01 18:22:53 浏览: 242
可以使用一个双重循环来实现矩阵转置的功能,具体步骤如下:
1. 定义一个函数,该函数输入一个3x3的二维数组,输出转置后的二维数组。
2. 在函数中使用双重循环遍历原始二维数组,将每一行的元素与对应列的元素交换位置。
3. 返回转置后的二维数组。
下面是一个示例代码,实现了一个名为transpose的函数,可以将给定的3x3二维数组进行转置:
```c
#include <stdio.h>
void transpose(int a[][3], int size) {
int i, j, temp;
for (i = 0; i < size; ++i) {
for (j = i; j < size; ++j) {
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
}
int main() {
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int i, j;
printf("Original matrix:\n");
for (i = 0; i < 3; ++i) {
for (j = 0; j < 3; ++j) {
printf("%d ", a[i][j]);
}
printf("\n");
}
transpose(a, 3);
printf("Transposed matrix:\n");
for (i = 0; i < 3; ++i) {
for (j = 0; j < 3; ++j) {
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果如下:
```
Original matrix:
1 2 3
4 5 6
7 8 9
Transposed matrix:
1 4 7
2 5 8
3 6 9
```
阅读全文