1142: m行n列矩阵转置

1142: m行n列矩阵转置

题目描述
求一个N行N列的矩阵的转置矩阵。(矩阵的行换成列,列换成行。)
输入
第一行一个整数n<20,表示有n组测试数据,下面是n组数据;
第二行是一个数N(2<N<10)
接下来N行每行有N个整数(所有数据均小于10000)。
输出
输出每组测试数据的转置矩阵;
每个数字后加一个空格,
请在每组输出之后加一个换行。
提示(每行最后一个数字后面也有一个空格)
样例输入
2
3
1 2 3
4 5 6
7 8 9
3
9 8 7
6 5 4
3 2 1
样例输出
1 4 7
2 5 8
3 6 9
9 6 3
8 5 2
7 4 1
代码如下:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,m,i,j;
    scanf("%d",&n);//确定有几组测试数据
    while(n--)
    {
        scanf("%d",&m);
        int a[m][m],b[m][m];
        for(i=0;i<m;i++)
        {
            for(j=0;j<m;j++)
            {
                scanf("%d",&a[i][j]);
            }
        }
    for(i=0;i<m;i++)//对测试数据进行转置
    {
        for(j=0;j<m;j++)
        {
            printf("%d ",a[j][i]);
        }
        printf("\n");
    }
    }
    return 0;
}