用c语言实现任意3*3矩阵与3*3矩阵的乘法?

如题所述

以下是一个C语言程序,用于实现任意3*3矩阵与3*3矩阵的乘法:
#include <stdio.h>

#define ROW1 3
#define COL1 3
#define ROW2 3
#define COL2 3

int main() {
int matrix1[ROW1][COL1] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 第一个3*3矩阵
int matrix2[ROW2][COL2] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}}; // 第二个3*3矩阵
int result[ROW1][COL2]; // 存放结果的3*3矩阵

// 计算矩阵乘积
for (int i = 0; i < ROW1; i++) {
for (int j = 0; j < COL2; j++) {
int sum = 0;
for (int k = 0; k < COL1; k++) {
sum += matrix1[i][k] * matrix2[k][j];
}
result[i][j] = sum;
}
}

// 输出结果矩阵
printf("矩阵乘积为:\n");
for (int i = 0; i < ROW1; i++) {
for (int j = 0; j < COL2; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}

return 0;
}

该程序使用了三个二维数组 matrix1、matrix2 和 result,分别表示第一个33矩阵、第二个33矩阵和结果矩阵。程序中使用了三重循环,其中最外层的循环遍历第一个矩阵的行,内层的循环遍历第二个矩阵的列,最内层的循环用来计算矩阵乘积的每一项。计算完成后,将结果存放在结果矩阵中,并通过两重循环输出结果矩阵。
需要注意的是,矩阵乘法的前提是第一个矩阵的列数等于第二个矩阵的行数,因此在实际应用中需要保证这个条件成立。此外,程序中的两个矩阵是硬编码在程序中的,实际应用中需要根据具体的需求进行修改。
温馨提示:答案为网友推荐,仅供参考