2、矩阵相乘 输入2×3矩阵A和3×2矩阵B各元素值,计算矩阵A和矩阵B相乘的结果 输入说明:输入整形数组A和数组B,数组元素用空格分隔

2、矩阵相乘
输入2×3矩阵A和3×2矩阵B各元素值,计算矩阵A和矩阵B相乘的结果

输入说明:输入整形数组A和数组B,数组元素用空格分隔

输出说明:输出矩阵A*B的结果,矩阵元素之间用空格分隔,数组每行元素用换行分隔


#define N 2
#define M 3
#include<stdio.h>
int(* Multiply(int(*arr)[M], int(*brr)[N], int C[N][N]))[N]
{
    int i = 0; int k = 0;
    
    for (i = 0; i < N; i++)
    {
        for (k= 0; k < M; k++)
        {
            int j = 0; int sum1 = 0;
            for (j = 0; j < M; j++)
            {
                sum1 += arr[i][j] * brr[j][k];
                /*sum2 += arr[i][j] * brr[j][1];*/
            }
            C[i][k] = sum1;
        
        }
        

        
    }
    return &C;
}
int main()
{
    int C[N][N] = { 0 };
    int A[N][M] = { 0 };
    int B[M][N] = { 0 };
    int i = 0;
    for (i = 0; i < N; i++)
    {
        int j = 0;
        for (j = 0; j < M; j++)
        {
            scanf("%d", &A[i][j]);
        }
    }
    for (i = 0; i < M; i++)
    {
        int j = 0;
        for (j = 0; j < N; j++)
        {
            scanf("%d", &B[i][j]);
        }
    }
    int (*p)[N]=Multiply(A, B,C);
    for (i = 0; i < N; i++)
    {
        int j = 0;
        for (j = 0; j < N; j++)
        {
            printf("%d", p[i][j]);
        }
        printf("\n");
    }
    return 0;
}