大一刚学C语言,这个求转置矩阵的程序编译没有错误,但是不能运行,是哪里错了?
#include <stdio.h>
#define N 10
void Transpose(int a[][N], int m, int n)
{
int i,j,t;
if(m<=n)
{
for(i=0;i<n;i++)
{
for(j=i+1;j<m;j++)
{
t=a[i][j];
a[j][i]=a[i][j];
a[i][j]=t;
}
}
}
else
{
for(j=0;j<n;j++)
{
for(i=j+1;i<m;i++)
{
t=a[i][j];
a[j][i]=a[i][j];
a[i][j]=t;
}
}
}
}
int main()
{
int m,n,i,j;
int a[m][n];
printf("Input m, n:");
scanf("%d,%d",&m,&n);
printf("Input %d*%d matrix:\n",m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d",a[i][j]);
}
}
Transpose(a,m,n);
printf("The transposed matrix is:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%4d",a[i][j]);
}
}
return 0;
}