使用工具:
Dev-C++ 5.11
解题思路:
创造一个函数transpose(int a[][N],int n),在内设置局部变量:两个下标和一个临时交换值的变量;再写一个双层循环,实现a[x][y]和a[y][x]的互换即可。
参考代码:
#include<stdio.h>
#include<string.h>
#include<math.h>
#define N 3
//用常量定义数组,切记勿用变量!
//此处定义N的值并不影响,后续添加scanf即可~
int main()
{
int x, y, temp, a[N][N];
int n;
int transpose(int a[][N], int n);
printf("Enter a number to determine the size of the array:");
scanf("%d", &n);//修改N值
for (x = 0; x < n; x++)
{
for (y = 0; y < n; y++)
{
scanf("%d", &a[x][y]);
}
}
printf("after:\n");
transpose(a, n);
for (x = 0; x < n; x++)
{
for (y = 0; y < n; y++)
printf("%d ", a[x][y]);
printf("\n");//3个数一换行
}
}
int transpose(int a[][N],int n)
{
int x, y, temp;
for (x = 0; x < n; x++)
for (y = x; y < n; y++)
{
temp = a[y][x];
a[y][x] = a[x][y];
a[x][y] = temp;
}
return 0;
}
运行结果: