1. 程式人生 > >編寫一個函式實現矩陣的轉置運算

編寫一個函式實現矩陣的轉置運算

#include <stdio.h>

void reverse(int (*a)[4],int (*b)[3]);
void Output(int (*b)[3],int n,int m);
void Input(int (* a)[4],int n,int m);

int main()
{
 int a[3][4],b[4][3];
 Input(a,3,4);
 printf("輸出資料a[3][4]:\n");
 Output(a,3,4);
 reverse(a,b);
 printf("輸出資料b[4][3]:\n");
 Output(b,4,3);

 return 0;
}

void Input(int (* a)[4],int n,int m)
{
 int i,j;
 printf("請輸入3*4個數據:");
 for(i=0;i<n;i++)
  for(j=0;j<m;j++)
   scanf("%d",(*(a+i)+j));
}


void Output(int (*b)[3],int n,int m)
{
 int i,j;
 
 for(i=0;i<n;i++)
 { 
  for(j=0;j<m;j++)
   printf("%d\t",*(*(b+i)+j));
  printf("\n");
 } 
}

void reverse(int (*a)[4],int (*b)[3])
{
 int i,j;
 for(i=0;i<4;i++)
  for(j=0;j<3;j++)
   b[i][j]=a[j][i];
}