1 //兩個二維數組相乘 2 #include<stdio.h> 3 #include<stdlib.h> 4 #define M 2 5 #define N 3 6 //#define P 6 7 void main() 8 { 9 int i,j,k; 10 //二維數組A和B求乘積,積放在數組C中 11 int A[M][N],B[N][M],C[M][M]; 12 //輸入二維數組A的元素的值 13 printf("請輸入矩陣A的元素:"); 14 for(i=0;i<M;i++) 15 { 16 for(j=0;j<N;j++) 17 { 18 scanf("%d",&A[i][j]); 19 } 20 } 21 printf("\n"); 22 //打印二維數組A的元素 23 printf("矩陣A如下:\n"); 24 for(i=0;i<M;i++) 25 { 26 for(j=0;j<N;j++) 27 { 28 printf("%3d",A[i][j]); 29 } 30 printf("\n"); 31 } 32 printf("\n"); 33 //輸入二維數組B的元素的值 34 printf("請輸入矩陣B的元素:"); 35 for(i=0;i<N;i++) 36 { 37 for(j=0;j<M;j++) 38 { 39 scanf("%d",&B[i][j]); 40 } 41 } 42 printf("\n"); 43 //打印二維數組B的元素 44 printf("矩陣B如下:\n"); 45 for(i=0;i<N;i++) 46 { 47 for(j=0;j<M;j++) 48 { 49 printf("%3d",B[i][j]); 50 } 51 printf("\n"); 52 } 53 //數組相乘 54 printf("\n矩陣A乘以矩陣B結果為:\n"); 55 for(i=0;i<M;i++) 56 { 57 for(j=0;j<M;j++) 58 { 59 C[i][j] = 0; 60 for(k=0;k<N;k++) 61 C[i][j] = C[i][j]+A[i][k]*B[k][j]; 62 } 63 } 64 printf("\n"); 65 //數組C中的值分行顯示 66 for(i=0;i<M;i++) 67 { 68 for(j=0;j<M;j++) 69 { 70 printf("%3d",C[i][j]); 71 } 72 printf("\n"); 73 } 74 system("pause"); 75 }

