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