C语言实现矩阵乘法(4*5乘以5*3)

 1 #include <stdio.h>
 2 
 3 void calcu_maxtrix(int a[3][4],int b[4][2]) 
 4 {
 5     int c[3][2];
 6     for (int i=0;i<3;i++)
 7     {    
 8         int k;
 9         
10         for (int j=0;j<2;j++)
11         {
12             int temp=0;
13             for(k=0;k<4;k++)
14             {
15                 temp=temp+a[i][k]*b[k][j];
16             }
17             c[i][j] = temp;  
18             printf("%d\t", c[i][j]);
19         }
20         
21         printf("\n");  
22     }   
23 
24 }
25 
26 void main()
27 {
28     int a[3][4]={{1,2,3,4},{1,2,3,4},{1,2,3,4}};
29     int b[4][2]={{1,2},{1,2},{1,2},{1,2}};
30     calcu_maxtrix(a,b);
31 }
program

i,j分别为乘积的行数,列数,k控制每一个c[i][j]的元素为乘积和,计算成功一个c[i][j]后输出,并附带一个制表符,计算完一列后,输出一个换行符。

结果:

 

 

可以从键盘输入数据的形式:

 1 #include <stdio.h>
 2 
 3 void calcu_maxtrix(int a[3][4],int b[4][2]) 
 4 {
 5     int c[3][2];
 6     for (int i=0;i<3;i++)
 7     {    
 8         int k;
 9         for (int j=0;j<2;j++)
10         {
11             int temp=0;
12             for(k=0;k<4;k++)
13             {
14                 temp=temp+a[i][k]*b[k][j];
15             }
16             c[i][j] = temp;  
17             printf("%d\t", c[i][j]);
18         }
19         
20         printf("\n");  
21     }   
22 
23 }
24 
25 void main()
26 {
27     int i,j,m,n;
28     int a[3][4];
29     printf("请输入第一个数组:\n");
30     for(i=0;i<3;i++)
31         for (j=0;j<4;j++)
32             scanf("%d",&a[i][j]);
33     
34         
35     int b[4][2];
36     printf("请输入第二个数组:\n");
37     for(m=0;m<4;m++)
38         for (n=0;n<2;n++)
39             scanf("%d",&b[m][n]);
40     printf("乘积矩阵为:\n");
41     calcu_maxtrix(a,b);
42 }
43 /*
44     int a[3][4]={{1,2,3,4},{1,2,3,4},{1,2,3,4}};
45     int b[4][2]={{1,2},{1,2},{1,2},{1,2}};
46 */
键盘输入

一个不小心,将第二个数据也赋值给a了,要避免失误。。

结果:

posted on 2014-10-26 09:02  fkl523  阅读(722)  评论(0编辑  收藏  举报

导航