4.8 矩阵的乘法运算(C语言实现)

【题目要求】有两个矩阵a1和a2如下,编写一个程序,实现这两个矩阵的乘积。
【代码实现】

// 矩阵的乘法运算
# include 
void multiple(int (* a1)[3], int (* a2)[4], int (* a3)[4]); // 函数声明
void printMatrix(int (* a)[4], int m, int n);
int main()
{
    int a1[2][3] = {{1, 2, 3}, {4, 5, 6}}; // 定义二维数组
    int a2[3][4] = {{1, 0, 2, 3}, {4, 1, 5, 6}, {6, 8, 9, 0}};
    int a3[2][4];
    multiple(a1, a2, a3); // 调用函数
    printMatrix(a3, 2, 4);
    return 0;
} 

void multiple(int (* a1)[3], int (* a2)[4], int (* a3)[4]) // 矩阵的乘法运算
{
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 4; ++j) {
            int tmp = 0;
            for (int k = 0; k < 3; ++k) {
                tmp += a1[i][k] * a2[k][j];
            }
            a3[i][j] = tmp;
        }
    }
}

void printMatrix(int (* a)[4], int m, int n)
{
    printf("Output %d*%d matrix:\n", m, n);
    for (int i = 0; i < m; ++i) {
        for (int j = 0; j < n; ++j) {
            printf("%d ", a[i][j]);
        }
        printf("\n");
    }
}

你可能感兴趣的:(矩阵,c语言)