想把二维数组行列互换时出现的问题

img


#include <stdio.h>
int main()
{
    int a[2][3], b[3][2];
    int i, j;
    for (i = 0; i < 2; i++)
        for (j = 0; j < 3; j++)
            scanf("%d", &a[2][3]);
    for (j = 0; j < 3; j++)
        for (i = 0; i < 2; i++)
            b[j][i]=a[i][j];//要把a数组值赋给b数组值
    for (i= 0; i < 2; i++)
    {
        printf("\n");
        for (j = 0; j < 3; j++)
            printf("%d", b[j][i]);
    }
            
    return 0;
}

求解决方式

修改见注释,供参考:

#include <stdio.h>
int main()
{
    int a[2][3], b[3][2];
    int i, j;
    for (i = 0; i < 2; i++)
        for (j = 0; j < 3; j++)
            scanf("%d", &a[i][j]);// scanf("%d", &a[2][3]);
    for (i = 0; i < 2; i++)   //for (j = 0; j < 3; j++)
        for (j = 0; j < 3; j++) //for (i = 0; i < 2; i++)
            b[j][i]=a[i][j];//要把a数组值赋给b数组值
    for (i= 0; i < 3; i++)  //for (i= 0; i < 2; i++)
    {
        printf("\n");
        for (j = 0; j < 2; j++) // for (j = 0; j < 3; j++)
            printf("%d ", b[i][j]); //printf("%d", b[j][i]);
    }
    
    return 0;
}

scanf("%d", &a[i][j]);