先上运行结果:
以下是代码实现:
#include <stdio.h>
#define N 4
int main(void)
{
int a[N][N] = {{21, 12, 13, 24},
{25, 16, 47, 38},
{29, 11, 32, 54},
{42, 21, 33, 10}};
int i, j, temp;
//显示原数组
printf("The array is:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf(" %d", a[i][j]);
printf("\n");
}
//以下代码是对行列进行互换的核心代码。
//主要思想是对从左上至右下以下的半个数组进行分析,找出全部可以进行对调的数
//找出i、j和N之间的规律。
for(i=1;i<N;i++)
for(j=0;j<i;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
//显示转制后数组
printf("After twist the array is:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf(" %d", a[i][j]);
printf("\n");
}
return 0;
}