n行n列矩阵转置,我这样哪里错了?


#include 
void move(int (*pointer)[n],int n)
{
    int i,j;
    int b[n][n];
    for(i=0;ifor(j=0;jfor(i=0;ifor(j=0;jprintf("%d ",b[i][j]);
        printf("\n");
        }
        printf("\n");
}
int main()
{
    int i,j,t,s,m,n;
    scanf("%d",&n);
    int a[n][n];
    for(i=0;ifor(j=0;jscanf("%d",&a[i][j]);
        }
    int (*point)[n];
    point=a;                  
    move(point,n);
    return 0;
}

修改如下,供参考:

#include <stdio.h>
#define N 10
void move(int (*pointer)[N],int n)
{
    int i,j,tmp;
    //int b[n][n];
    for(i=0;i<n;i++){
        for(j=i;j<n;j++)
        {
            tmp =  pointer[i][j];
            pointer[i][j] = pointer[j][i];
            pointer[j][i] = tmp;
        }
        //printf("%d ",b[i][j]);
        //printf("\n");
    }
    //printf("\n");
}
int main()
{
    int a[N][N];
    int i,j,t,s,m,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);

    int (*point)[N];
    point=a;
    move(point,n);

    for(i=0;i<n;i++){ //输出转置后的数组
        for(j=0;j<n;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}

矩阵转置的最好方式就是:
麻烦采纳一下哟,谢谢❤

matT[i][j]=mat[j][i];