1. 程式人生 > >C語言對矩陣的轉制與二維陣列行列互換

C語言對矩陣的轉制與二維陣列行列互換

 //矩陣的轉制就是二維陣列的行列互換,比如有這樣的一個矩陣a[3][3]=   1,2,3

                                                                                                                   4,5,6

                                                                                                                   7,8,9         

                                              你的目的就是要把它變成a[3][3]=  1,4,7

                                                                                                    2,5,8 

                                                                                                    3,6,9

你可以發現1,5,9的位置沒有改變。  如果你把矩陣按照1,5,9所在的直線對摺,發現後來的矩陣跟前面的矩陣重疊的位置交換下 也就是把第1行第2列換成第2行第1列 ,a[0][1]=a[1][0],  因此得出a[i][j]互換a[j][i],這裡以3*3的矩陣為例:

#include <stdio.h>
int main(){
 int a[3][3],b[3][3];
 int i,j;
 printf("Please input string: ");
 for(i=0;i<=2;i++){
  for(j=0;j<=2;j++){
   scanf("%d", &a[i][j]);
  }
 }
 for(i=0;i<=2;i++){
  for(j=0;j<=2;j++){
   b[i][j]=a[j][i];
  }
 }
 printf("A string is: \n");
 for(i=0;i<=2;i++){
  for(j=0;j<=2;j++){
   printf("%d\t",a[i][j]);
  }
  printf("\n");
 }
 printf("B string is: \n");
 for(i=0;i<=2;i++){
  for(j=0;j<=2;j++){
   printf("%d\t",b[i][j]);
  }
  printf("\n");
 }
 return 0;
}