矩阵转置问题
/*设一个矩阵的阶数最多不超过50,将其转置,方法如下*/
/*不仅适用于正方形,同样也适用于长方形*/
#include<stdio.h>
#define maxn 55
int main()
{
int m, n; /*m代表行,n代表列*/
while(scanf("%d%d",&m,&n) != EOF)
{
int i,j;
int a[maxn][maxn];
/*input*/
for(i = 0; i < m ; i++)
{
for(j = 0; j < n; j++)
scanf("%d",&a[i][j]);
}
/*因为转置过程中i = j 处的位置没动*/
int temp;
for(i = 0; i < m ; i++)
{
for(j = 0; j < n; j++)
{
if(j > i) /*将对角线上方的元素与对角线下方的元素对换*/
{
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
}
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
printf("%2d",a[i][j]);
printf("\n");
}
}
return 0;
}