首先矩阵的乘法定义如下:

#include <stdio.h>
 int main()
 {
     int i = 0;
     int j = 0;
     int arr[20][20] = { 0 };
     int str[20][20] = { 0 };
     int s[20][20] = { 0 };
     int n1 = 0;
     int n2 = 0;
     int m2 = 0;
     int z = 0;
     int m1 = 0;
     scanf("%d %d",&n1,&m1);
     for( i = 0 ; i < n1;i++)
     {
         for( j = 0 ; j < m1;j++)
         {
             scanf("%d",&arr[i][j]);
         }
     }
     scanf("%d %d",&n2,&m2);
     for( i = 0 ;i < n2 ; i++)
     {
         for( j = 0 ; j < m1 ;j++)
         {
             scanf("%d",&str[i][j]);
         }
     }
     if( m1 != n2 )
     {
         printf("error!\n");
     }
     else
     {    矩阵A*矩阵B
         for( i = 0 ;i < n1;i++)  //i代表A矩阵的行
         {
             for( j = 0 ; j < m2 ;j++)//j代表B矩阵的列
             {
                 for( z = 0 ; z < n2 ;z++)//代表A矩阵的列(或B矩阵的行)
                 {   S矩阵的i行j列 = A矩阵的i行*B矩阵的j列
                    s[i][j]+=arr[i][z]*str[z][j];
                 }
             }
         }
         for(i = 0 ;i < n1;i++)
         {
             for(j = 0 ;j < m2;j++)
             {
                 printf("%d ",s[i][j]);
             }
             printf("\n");
         }
     }
     return 0;
 }