温馨提示×

c语言矩阵相乘代码如何写

小亿
112
2024-01-09 14:40:42
栏目: 编程语言

以下是一个简单的C语言矩阵相乘的代码示例:

#include <stdio.h>

#define SIZE 3

void multiplyMatrix(int mat1[][SIZE], int mat2[][SIZE], int result[][SIZE]) {
    int i, j, k;

    // 矩阵相乘
    for (i = 0; i < SIZE; i++) {
        for (j = 0; j < SIZE; j++) {
            result[i][j] = 0;
            for (k = 0; k < SIZE; k++) {
                result[i][j] += mat1[i][k] * mat2[k][j];
            }
        }
    }
}

void displayMatrix(int matrix[][SIZE]) {
    int i, j;

    // 打印矩阵
    for (i = 0; i < SIZE; i++) {
        for (j = 0; j < SIZE; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int mat1[SIZE][SIZE] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
    int mat2[SIZE][SIZE] = { {9, 8, 7}, {6, 5, 4}, {3, 2, 1} };
    int result[SIZE][SIZE];

    multiplyMatrix(mat1, mat2, result);
    displayMatrix(result);

    return 0;
}

在上面的代码中,我们定义了一个multiplyMatrix函数,该函数接受两个二维数组作为参数,分别表示两个矩阵,还有一个用于存储结果的二维数组。函数中使用三个循环来实现矩阵相乘的计算过程。

displayMatrix函数用于打印结果矩阵。

main函数中,我们定义了两个矩阵mat1mat2,并将结果存储在result中,然后调用multiplyMatrix函数计算结果,最后调用displayMatrix函数打印结果。

以上代码只是一个简单的例子,矩阵大小为3x3,你可以根据自己的需求修改代码中的矩阵大小。

0