數據結構-矩陣的倒置,加法,乘法

1.矩陣的倒置
#include<stdio.h> #define N 2 #define M 3 int main(){ int i,j,a[N][M],b[M][N]; //從鍵盤輸入矩陣a for(i=0;i<N;i++){ for(j=0;j<M;j++){ printf("a[%d][%d]= ",i,j); scanf("%d",&a[i][j]); } } //輸出矩陣a printf("Array a:\n"); for(i=0;i<N;i++){ for(j=0;j<M;j++){ printf("%5d",a[i][j]); b[j][i]=a[i][j]; } printf("\n"); } //輸出矩陣b printf("Array b:\n"); for(i=0;i<M;i++){ for(j=0;j<N;j++){ printf("%5d",b[i][j]); } printf("\n"); } }



2.矩陣的乘法
#include<stdio.h>
  #define M 10
  int main(){
      long int a[M][M], b[M][M], c[M][M]={0};
      int m, n, p, i, j, k;
      printf("請輸入數組A的行\n");
      scanf("%d",&m);
      printf("請輸入數組A的列\n");
      scanf("%d",&n);
      printf("請輸入數組B的行\n");
      scanf("%d",&p);
     printf("Please input array A (%d * %d)\n", m, n);
     for(i=0;i<m;i++){
         for(j=0;j<n;j++){
             scanf("%ld", &a[i][j]);
         }
     }
     printf("Plaese input array B (%d * %d)\n", n, p);
     for(i=0;i<n;i++){
         for(j=0;j<p;j++){
             scanf("%ld", &b[i][j]);
         }
     }
     //A*B=C
     for(i=0;i<m;i++){
         for(j=0;j<p;j++){
             for(k=0;k<n;k++){
                 c[i][j]=c[i][j]+a[i][k]*b[k][j];
             }
         }
     }
 
     printf("A*B= \n");
     for(i=0;i<m;i++){
         for(j=0;j<p;j++){
            printf("%3ld",c[i][j]);
         }
         printf("\n");
     }
 return 0;
 }

 

3.矩陣的加法和乘法數組

 1 #include<stdio.h>
 2 int main()  3 {  4     int a[15][15],i,j,k,t,b;  5     printf("請輸入一個3行3列的矩陣:\n");  6     for(i=0;i<3;i++)  7         for(j=0;j<3;j++)  8             scanf("%d",&a[i][j]);  9     printf("請輸入另外一個3行3列的矩陣\n"); 10     for(k=0;k<3;k++) 11         for(t=0;t<3;t++) 12             scanf("%d",&a[k+3][t+3]); 13     printf("矩陣【1】\n"); 14     for(i=0;i<3;i++){ 15             for(j=0;j<3;j++) 16                 printf("%d ",a[i][j]); 17             printf("\n"); 18  } 19     printf("矩陣【2】\n"); 20     for(i=0;i<3;i++){ 21             for(j=0;j<3;j++) 22                 printf("%d ",a[i+3][j+3]); 23             printf("\n"); 24  } 25  
26     printf("請選擇要進行的運算:1 相加 2 相乘\n"); 27     scanf("%d",&b); 28         if(b==1) 29  { 30             printf("相加:\n"); 31             for(i=0;i<3;i++) 32                 for(j=0;j<3;j++) 33                     a[i][j]=a[i][j]+a[i+3][j+3]; 34             for(i=0;i<3;i++){ 35                 for(j=0;j<3;j++) 36                     printf("%d\t",a[i][j]); 37                 printf("\n");} 38  } 39         if(b==2) 40  { 41             printf("相乘:\n"); 42             for(i=0;i<3;i++) 43                 for(j=0;j<3;j++) 44                     a[i+6][j+6] = a[i][0]*a[3][j+3] + a[i][1]*a[4][j+3] + a[i][2]*a[5][j+3]; 45             for(i=0;i<3;i++){ 46                 for(j=0;j<3;j++) 47                     printf("%d\t",a[i+6][j+6]); 48                 printf("\n"); 49  } 50  } 51 }

相關文章
相關標籤/搜索