矩阵的乘法

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

矩阵的乘法_第1张图片

#include
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;
}

你可能感兴趣的:(矩阵,算法,数据结构)