c语言转置矩阵,运行无结果,求大佬帮帮忙。

#include<stdio.h>
#include<string.h>
void zhuanzi(int *a,int n){   

        int i,j,t;int (*b)[n];
    
        for(i=0;i<n;i++){
        for(j=0;j<n;j++){
         (*b+i)[j]=a[5*i+j] ;
        }}
    
    
    for(i=0;i<n;i++){
        for(j=0;j<n;j++){
        t=(*b+j)[i];
        (*b+j)[i]=(*b+i)[j];
        (*b+i)[j]=t;
        }   
    }
}

int  main(){
    int n,i,j;
    printf("输入转置矩阵大小n:");
    scanf("%d",&n);
    int a[121];
    for(i=0;i<n*n;i++){
            scanf("%d,",&a[i]);
}

    zhuanzi( a ,n);
 
    for(j=1;j<=n*n;j++){
            printf("%d",a[j-1]);
                if(j%n==0)    printf("\n");
        }
    return 0;
}

#define MAXSIZE 20
void zhuanzi(int a[MAXSIZE][MAXSIZE],int n)
{   
	int i,j,t;
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			t = a[i][j];
			a[i][j] = a[j][i] ;
			a[j][i] = t;
		}
	}
}
void main()
{
	int n,i,j;
	printf("输入转置矩阵大小n:");
	scanf("%d",&n);
	int a[MAXSIZE][MAXSIZE];
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
		{
			scanf("%d,",&a[i][j]);
		}
	zhuanzi( a ,n);

	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
			printf("%d ",a[i][j]);
		printf("\n");
	}
}