📜  矩阵乘法 - C 编程语言(1)

📅  最后修改于: 2023-12-03 15:27:17.673000             🧑  作者: Mango

矩阵乘法 - C 编程语言

矩阵乘法是一种常用的数学运算,在计算机科学领域中也经常需要用到。在 C 编程语言中,实现矩阵乘法的方法有多种,本文将介绍一种基于二维数组的实现方法。

二维数组

在 C 编程语言中,二维数组是一个可以容纳多个数值的数据结构,可以用来表示矩阵。下面是一个4x4的二维数组的声明:

int matrix[4][4];

其中,matrix[0][0]表示矩阵的第一个元素,matrix[3][3]表示矩阵的最后一个元素。

矩阵乘法

矩阵乘法的计算方法比较复杂,需要根据矩阵的规模来决定循环次数和计算方法。下面是一个矩阵乘法的示例代码:

#include <stdio.h>

#define N 3

void matrix_multiply(int A[N][N], int B[N][N], int C[N][N]) {
    int i, j, k;

    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            C[i][j] = 0;

            for (k = 0; k < N; k++) {
                C[i][j] += A[i][k] * B[k][j];
            }
        }
    }
}

int main() {
    int A[N][N] = {{1, 2, 3},
                   {4, 5, 6},
                   {7, 8, 9}};

    int B[N][N] = {{1, 2, 3},
                   {4, 5, 6},
                   {7, 8, 9}};

    int C[N][N];

    matrix_multiply(A, B, C);

    int i, j;

    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            printf("%d ", C[i][j]);
        }

        printf("\n");
    }

    return 0;
}

输出结果为:

30 36 42 
66 81 96 
102 126 150 
代码说明

上面的代码中,matrix_multiply()函数用于计算两个矩阵的乘积,它接受三个参数:两个输入矩阵A和B,以及一个输出矩阵C。

在函数中,我们使用了三重循环来计算矩阵的乘积。第一重循环遍历每一行,第二重循环遍历每一列,第三重循环遍历每一个元素,并累加到输出矩阵的相应位置。

在主函数中,我们定义了两个3x3的矩阵A和B,并通过matrix_multiply()函数将它们相乘得到C。最后,我们遍历输出矩阵C的每一个元素,以便于查看结果。

总结

本文介绍了在 C 编程语言中使用二维数组实现矩阵乘法的方法,并给出了相应的示例代码。需要注意的是,矩阵乘法的计算方法比较复杂,需要仔细理解循环次数和计算方法。