C 转置矩阵输出不正确

C 转置矩阵输出不正确,c,matrix,C,Matrix,我试图将5x4矩阵转换为4x5矩阵,但输出不匹配,我不知道我的逻辑中的问题在哪里。还存在打印初始矩阵的问题。我认为问题可能在于我如何访问矩阵中的每个值 这是我的密码: #include <stdio.h> int main() { int i,j; int temp; int array[5][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}, {17,18,19,20}}; for(i

我试图将5x4矩阵转换为4x5矩阵,但输出不匹配,我不知道我的逻辑中的问题在哪里。还存在打印初始矩阵的问题。我认为问题可能在于我如何访问矩阵中的每个值

这是我的密码:

#include <stdio.h>

int main()
{
    int i,j;
    int temp;
    int array[5][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, {13,14,15,16}, {17,18,19,20}};

    for(i=0; i<4; i++);
    {
        for(j=0; j<5; j++);
        {
            printf("%d ", array[i][j]);
        }
    }

    printf("\n");

    for(i=0; i<4; i++)
    {   
        for(j=0; j<5; j++)
        {                            
            temp=array[i][j];
            array[i][j]=array[j][i];                
            array[j][i]=temp;
            printf("%d ",array[i][j]);
        }
        printf("\n");
    }
    return(0);
}

将非正方形2d矩阵转置到位并不是一个简单的操作。试着用你的算法在一张纸上转置一个2x3得到一个3x2。如果你是有系统的,你很快就会发现哪里出了问题。@Gene是的,我现在意识到了这个问题,我用初始数组和第二个空数组重新编写了程序,它工作得很好。非常感谢。
0                                                                                           
1 5 9 13 17                                                                                 
5 6 10 14 18                                                                                
9 10 11 15 19                                                                               
13 14 15 16 20