请问这个求转置矩阵的c语言程序错哪了?

大一刚学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;
}

你什么编译器呢?这么牛,还会编译没错误?那一大堆的错误0 0,,
#include <stdio.h>
void Transpose(int a[10][10],int m,int n)
{
int i,j,t;
for(i=0;i<m;i++)
{
for(j=0;j<i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
}
int main()
{
int i,j;
int m,n;
int a[10][10];
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("%4d",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;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-20
t=a[i][j];
a[j][i]=a[i][j];
a[i][j]=t;
该成
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
相似回答