1 #include "stdio.h"
2 #include "stdlib.h"
3 #include "time.h"
4 #define random(x) (rand()%x)
5
6 int main () 7 { 8 int m,l,p,q; 9 printf("输入第一个矩阵的维数m和l:"); 10 scanf("%d%d",&m,&l); 11 printf("输入第二个矩阵的维数p和q:"); 12 scanf("%d%d",&p,&q); 13 while (l!=p) 14 { 15 printf("两个矩阵不匹配,不能进行相乘运算,请重新输入...\n\n"); 16 printf("输入第一个矩阵的维数m和l:\n"); 17 scanf("%d%d",&m,&l); 18 printf("输入第二个矩阵的维数p和q:\n"); 19 scanf("%d%d",&p,&q); 20 } 21 int a[1000][1000]={0}, b[1000][1000]={0},sum=0; 22 int i,j,k=0; 23
24 for (i=0;i<m;i++) 25 { 26 for (j=0;j<l;j++) 27 { 28 a[i][j]=(int)random(10); 29 } 30 } 31 printf("随机矩阵a是:\n"); 32 for (i=0;i<m;i++) 33 { 34 for (j=0;j<l;j++) 35 { 36 printf("%d ",a[i][j]); 37 } 38 printf("\n"); 39 } 40
41 for (i=0;i<p;i++) 42 { 43 for (j=0;j<q;j++) 44 { 45 b[i][j]=(int)random(10); 46 } 47 } 48 printf("随机矩阵b是:\n"); 49 for (i=0;i<p;i++) 50 { 51 for (j=0;j<q;j++) 52 { 53 printf("%d ",b[i][j]); 54 } 55 printf("\n"); 56 } 57 printf("ab相乘结果为:\n"); 58
59 for (i=0;i<m;i++) 60 { 61 while (k<q) 62 { 63 for (j=0;j<q;j++) 64 { 65 sum = a[i][j]*b[j][k]+sum; 66 } 67 printf("%d ",sum); 68 k++; 69 sum=0; 70 } 71 k=0; 72 printf("\n"); 73 } 74 }