矩阵的转置

二维数组的转置

#include<stdio.h>
#define N 3
#define M 4
main()
{
    int i,j;
    int a[N][M]={0,1,2,3,4,5,6,7,8,9,10,11},b[M][N];
    for(i=0;i<M;i++)
        for(j=0;j<N;j++)
        {
            b[i][j]=a[j][i];
        }
    for(i=0;i<M;i++)
        for(j=0;j<N;j++)
    {
        printf("%6d",b[i][j]);
        if(j==2)
            printf("\n");
    }
}

矩阵的转置

最开始写的时候想控制二维数组行的输出,

把printf("%6d",b[i][j]);

   if(j==2)

   printf("\n");这几行语句的顺序写错了,写成 if(j==2)

                                                                  printf("\n");

                                                                  printf("%6d",b[i][j]);,输出的结果是这样的 0    4

                                                                                                                                8    1    5

                                                                                                                                9    2    6

                                                                                                                               10   3    7

                                                                                                                               11。