c语言方阵转置

输入一个正整数n(1<n<=6),根据下式生成1个n*n的方阵,然后将该方阵转置(行列互换)后输出。a[i][j]=i*n+j+1(0<=j<=n-1)
分析:int a[6][6];n=3时
123 147
456变成258
789 369
a[i][j]变成a[j][i]

#include <stdio.h>
#include <stdlib.h>
int main()
{
int **a;
int n,i,j;
printf("input n: ");
scanf("%d", &n );

a=(int **)malloc(n*sizeof(int *));
for( i=0;i<n;i++ )
{
a[i]=(int *)malloc(n*sizeof(int));
for( j=0;j<n;j++)
{
a[i][j]=i*n+j+1;
}
}

for( i=0;i<n;i++ )
{
for( j=0;j<n;j++)
printf("%2d ", a[j][i] );
printf("\n");
}
return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答