写一函数,使给定的一个二维数组(5×5)转置,即行列互换。 要求:(1)矩阵转置的函数名为Turn。 (2)转置前后的输入输出都应在主函数中完成。 (3)使用数组作为函数参数。
时间: 2023-07-16 10:17:23 浏览: 86
下面是一个可能的实现:
```c
#include <stdio.h>
void Turn(int a[5][5])
{
int i, j;
int temp;
for (i = 0; i < 5; i++)
{
for (j = i+1; j < 5; j++) // 只需遍历右上角的一半
{
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
}
int main()
{
int a[5][5] = {{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15},
{16,17,18,19,20},
{21,22,23,24,25}};
int i, j;
printf("Before transpose:\n");
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
Turn(a);
printf("\nAfter transpose:\n");
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
```
输出:
```
Before transpose:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
After transpose:
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
```
阅读全文