C语言实现矩阵相乘


    

 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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM