溫馨提示×

c語言矩陣相乘代碼如何寫

小億
102
2024-01-09 14:40:42
欄目: 編程語言

以下是一個(gè)簡單的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;
}

在上面的代碼中,我們定義了一個(gè)multiplyMatrix函數(shù),該函數(shù)接受兩個(gè)二維數(shù)組作為參數(shù),分別表示兩個(gè)矩陣,還有一個(gè)用于存儲結(jié)果的二維數(shù)組。函數(shù)中使用三個(gè)循環(huán)來實(shí)現(xiàn)矩陣相乘的計(jì)算過程。

displayMatrix函數(shù)用于打印結(jié)果矩陣。

main函數(shù)中,我們定義了兩個(gè)矩陣mat1mat2,并將結(jié)果存儲在result中,然后調(diào)用multiplyMatrix函數(shù)計(jì)算結(jié)果,最后調(diào)用displayMatrix函數(shù)打印結(jié)果。

以上代碼只是一個(gè)簡單的例子,矩陣大小為3x3,你可以根據(jù)自己的需求修改代碼中的矩陣大小。

0