📜  C++程序使用多维数组将两个矩阵相乘(1)

📅  最后修改于: 2023-12-03 14:39:59.909000             🧑  作者: Mango

使用多维数组实现矩阵乘法

矩阵乘法是线性代数中重要的操作之一,也是计算机图形学等领域中常用的操作。本篇文章将介绍如何使用C++程序实现矩阵乘法。

矩阵乘法的定义

矩阵乘法是指对于两个矩阵A和B,其乘积C为:

其中,A的列数要等于B的行数才能进行乘法运算,并且乘积矩阵C的行数等于A的行数,列数等于B的列数。

多维数组实现矩阵乘法

在C++中,使用多维数组可以方便地实现矩阵的存储和乘法运算。

下面是一个示例程序,可以读入两个矩阵A和B,计算它们的乘积C,并输出结果。

#include <iostream>
using namespace std;

int main()
{
    int n, m, k;
    cin >> n >> m >> k;	// 读入矩阵A的行列数和矩阵B的列数

    int a[n][m], b[m][k], c[n][k];	// 定义矩阵A、B和C
    // 读入矩阵A
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            cin >> a[i][j];
    // 读入矩阵B
    for (int i = 0; i < m; i++)
        for (int j = 0; j < k; j++)
            cin >> b[i][j];

    // 初始化矩阵C
    for (int i = 0; i < n; i++)
        for (int j = 0; j < k; j++)
            c[i][j] = 0;

    // 计算矩阵C
    for (int i = 0; i < n; i++)
        for (int j = 0; j < k; j++)
            for (int s = 0; s < m; s++)
                c[i][j] += a[i][s] * b[s][j];

    // 输出矩阵C
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < k; j++)
            cout << c[i][j] << " ";
        cout << "\n";
    }

    return 0;
}

上述程序先读入矩阵A的行列数和矩阵B的列数,然后定义三个二维数组a、b和c分别代表矩阵A、B和C。

接着,程序按照从标准输入中读入的顺序读入矩阵A和B的元素,同时初始化矩阵C中的元素为0。

最后,程序利用三个嵌套的for循环计算矩阵C的每个元素,并输出结果。

总结

本篇文章介绍了如何使用C++程序通过多维数组实现矩阵乘法。由于矩阵乘法涉及到大量的计算,因此在实际使用中应该注意程序的效率,尤其是在矩阵的规模较大时。