C言語で行列の掛け算のコードをどう書けばいいですか?

以下是一个简单的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という関数を定義しました。この関数は、2つの2次元配列を引数として受け取り、それぞれ行列を表し、結果を格納するための2次元配列も引数として受け取ります。関数内では、3つのループを使用して行列の掛け算を計算しています。

displayMatrix関数は、結果の行列を表示するために使用されます。

main関数では、mat1とmat2という2つの行列を定義し、その結果をresultに保存し、その後、multiplyMatrix関数を呼び出して結果を計算し、最後にdisplayMatrix関数を呼び出して結果を印刷します。

以上のコードは単なる簡単な例です。行列のサイズは3×3ですが、必要に応じてコード内の行列サイズを変更することができます。

bannerAds