请问一下这个矩阵转置有什么问题啊

#include <stdio.h>

int main(){
int i;
int j;
int q,w,r,t,u,s;
int b[2][3];
int a[3][2];
scanf("%d",&q,&w,&r,&t,&u,&s);
int a[3][2]={
{q,w,r},
{t,u,s},
};
for(i=0;i<3;i++){
for(j=0;j<2;j++){
b[j][i]=a[i][j];}}
for(i=0;i<3;i++){
for(j=0;j<2;j++){
printf("%d\n",b[j][i]);}}
return 0;
}

修改见注释,供参考:

#include <stdio.h>
int main()
{
    int i;
    int j;
    int q,w,r,t,u,s;
    int b[2][3];
    //int a[3][2];    //修改
    scanf("%d%d%d%d%d%d",&q,&w,&r,&t,&u,&s); //修改
    int a[3][2]={{q,w},  //修改
                 {r,t},
                 {u,s}};
    for(i=0;i<3;i++){
       for(j=0;j<2;j++){
           b[j][i]=a[i][j];
       }
    }
    for(i=0;i<2;i++){  //修改
       for(j=0;j<3;j++){ //修改
           printf("%4d",b[i][j]); //修改
       }
       printf("\n");//修改
    }
    return 0;
}

我下面的代码是将2行3列的矩阵转置为3行2列


#include <stdio.h>
int main() 
{
    int i;
    int j;
    int q, w, r, t, u, s;
    int b[3][2];
    scanf("%d %d %d %d %d %d", &q, &w, &r, &t, &u, &s);
    int a[2][3] = {
    {q,w,r},
    {t,u,s},
    };
    for (i = 0; i < 2; i++) {
        for (j = 0; j < 3; j++) {
            b[j][i] = a[i][j];
        }
    }
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 2; j++) {
            printf("%d\t", b[i][j]);
        }
        printf("\n");
    }
    return 0;
}