矩阵乘法

 

 1 #include<stdio.h>
 2 
 3 //宏定义 
 4 #define max_row 200 //定义矩阵最大的行数 
 5 #define max_column 200 //定义矩阵最大的列数 
 6 
 7 int main()
 8 {
 9     int i,j,k;
10     int m,s,n; //用于记录矩阵A、B和C的行数和列数:矩阵A:m*s;矩阵B:s*n;矩阵C:m*n 
11     int A[max_row][max_column],B[max_row][max_column],C[max_row][max_column]={{0},{0}}; //三个二维数组,分别记录矩阵A、B和C 
12     
13     //输入 
14     scanf("%d%d%d",&m,&s,&n); //输入行、列数 
15     for(i=0;i<m;i++) //输入矩阵A 
16         for(j=0;j<s;j++)
17             scanf("%d",&A[i][j]);
18     for(i=0;i<s;i++) //输入矩阵B 
19         for(j=0;j<n;j++)
20             scanf("%d",&B[i][j]);
21     
22     //矩阵相乘        
23     for(i=0;i<m;i++) 
24         for(j=0;j<n;j++)
25             for(k=0;k<s;k++)
26                 C[i][j]+=A[i][k]*B[k][j]; //矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积
27     
28     //输出 
29     for(i=0;i<m;i++)
30     {
31         for(j=0;j<n;j++)
32             printf("%d ",C[i][j]);
33         putchar('\n');
34     }
35 
36     return 0;
37 }
posted @ 2015-03-07 16:15  LeoFeng  阅读(329)  评论(0编辑  收藏  举报