我的格式哪里错了啊!

7-2 矩阵转置 (12 分)
输入一个mXm的整数矩阵,进行转置后输出。2<n <20

输入格式:
第1行输入矩阵的行数。 其后的 m 行 每行输入m个整数,数据之间用空格分隔。

输出格式:
输出转置后的矩阵。数据之间用空格分隔,最后 一个数据后没有空格。

输入样例:
在这里给出一组输入。例如:

5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
结尾无空行
输出样例:
在这里给出相应的输出。例如:

1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
作者
lsr
单位
枣庄学院
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C (gcc)
1
#include<stdio.h>
2
int main()
3
{
4
int n,i,j;
5
scanf("%d",&n);
6
int a[n][n];
7
for(i=0;i<n;i++)
8
{
9
for(j=0;j<n;j++)
10
{
11
scanf("%d",&a[i][j]);
12
}
13
}
14
for(i=0;i<n;i++)
15
{
16
for(j=0;j<n;j++)
17
{
18
printf("%d ",a[j][i]);
19
}
20
printf("\n");
21
}
22
return 0;
23
}


#include
#define SIZE 20 //预定义要进行转置的矩阵最大大小为 20*20

//为了函数参数传递的方便,将行和列的具体大小定义为全局变量
int column; //行
int row ;//列

//矩阵的输入函数
void inputMatrix(int a[][SIZE] , int n, int m){ //二维数组参数下标必须要确定
 int i,j;
 for(i = 0;i < n;i++){
  for(j = 0;j < m;j++){
   scanf("%d",&a[i][j]);
  }
 }
}

//矩阵的输出函数
void outputMatrix(int b[][SIZE] , int n, int m){
 int i,j;
 for(i = 0;i < n;i++){
  for(j = 0;j < m;j++){
   printf("%d ",b[i][j]);  
  }
  printf("\n"); //每次打印完一行后进行换行
 }
}

//矩阵的转置运算
void matrixTransport(int a[][SIZE], int b[][SIZE]){
 int i,j;
 for(i = 0;i < row;i++){
  for(j = 0; j < column ; j++){
   b[i][j] = a[j][i];
  
  }
 }
}

int main()
{ 
 //定义数组并初始化
 int a[SIZE][SIZE]={0};
 int b[SIZE][SIZE]={0};//定义数组,注意要初始化

 
 //矩阵行,列数的确定
 printf("请输入您要进行转置的矩阵的行数 : column =  ");
 scanf("%d",&column);
 printf("\n请输入您要进行转置的矩阵的列数 : row = ");
 scanf("%d",&row);

 //函数调用及主功能实现
 printf("请输入一个 %d X %d 的矩阵 \n" , column , row);
 inputMatrix(a, column , row);
 matrixTransport(a,b);
 printf("转置后的矩阵是 :\n");
 outputMatrix(b, row , column);

 getchar();
 return 0;
}

定义数组的时候不能用n,按照题目应该是a[20][20];