我的答案:
#include <stdio.h>
#define N 10
void Transpose(int (*a)[N], int n);
void Swap(int *x, int *y);
void InputMatrix(int (*a)[N], int n);
void PrintMatrix(int (*a)[N], int n);
void InputMatrix(int (*a)[N], int n)
{
int i,j;
for(i = 0;i < n ;i++)
{
for(j = 0;j < n; j++)
{
scanf("%d",&a[i*n + j]);
}
}
}
void Transpose(int (*a)[N], int n)
{
int i,j;
for(i = 0;i < n ;i++)
{
for(j = 0;j < n; j++)
{
Swap(&a[i*n + j], &a[j*n + i]);
}
}
}
void Swap(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
PrintMatrix(int (*a)[N], int n)
{
int i,j;
for(i = 0;i < n ;i++)
{
for(j = 0;j < n ; j++)
{
printf("%d\t", *a[i*n + j]);
}
printf("\n");
}
}
int main()
{
int n,s[N][N];
printf("Input n:");
scanf("%d",&n);
printf("Input %d*%d matrix:\n",n,n);
InputMatrix( s, n);
Transpose( s, n);
printf("The transposed matrix is:\n");
PrintMatrix( s, n);
return 0;
}
请问哪里错了?该怎么改?