C 二维数组转置 在线等大神

#include<stdio.h>
#define N 10
#define M 10
void Transpose(int a[][N], int at[][M], int m, int n);
void InputMatrix(int a[][N], int m, int n);
void PrintMatrix(int at[][M], int n, int m);
void main()
{
int a[M][N],at[N][M],m,n;
printf("Input m, n:");
scanf("%d,%d",&m,&n);
InputMatrix(a,m,n);
Transpose(a,at,m,n);
PrintMatrix(at,n,m);
}

void InputMatrix(int a[][N], int m, int n)
{
int i,j;
printf("按行输入\n");
for(i=0;j<m;j++){
for(i=0;i<n;i++) {
scanf("%d",&a[i][j]);}
}
}

void Transpose(int a[][N], int at[][M], int m, int n)
{
int i,j;
for(i=0;j<m;j++){
for(i=0;i<n;i++){
at[j][i]=a[i][j];}
}
}

void PrintMatrix(int at[][M], int n, int m)
{
int i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
printf("%3d",at[i][j]);}
}
}

#include<stdio.h>
#define N 10
#define M 10
void Transpose(int a[][N], int at[][M], int m, int n);
void InputMatrix(int a[][N], int m, int n);
void PrintMatrix(int at[][M], int n, int m);
void main()
{
 int a[M][N],at[N][M],m,n;
 printf("Input m, n:");
 scanf("%d,%d",&m,&n);
 InputMatrix(a,m,n);
 Transpose(a,at,m,n);      
 PrintMatrix(at,n,m);
}

void InputMatrix(int a[][N], int m, int n)
{
 int i,j; 
 printf("按行输入\n");
 for(j=0;j<m;j++){//j=0
  for(i=0;i<n;i++) {
   scanf("%d",&a[j][i]);}
 }
}

void Transpose(int a[][N], int at[][M], int m, int n)
{
 int i,j;
 for(j=0;j<m;j++){//j=0
  for(i=0;i<n;i++){
   at[i][j]=a[j][i];}
 }
}

void PrintMatrix(int at[][M], int n, int m)
{
 int i,j;
 for(i=0;i<m;i++){
  for(j=0;j<n;j++){
   printf("%3d",at[i][j]);
  if(j==n-1)//输出换行
  putchar(10);//
  }
 }
}

温馨提示:答案为网友推荐,仅供参考