用c语言编写一个自定义函数实现两个3x3矩阵相乘并在主函数中对其进行多次调用
时间: 2024-02-06 15:10:20 浏览: 80
得一个 3×3 的矩阵转置,用一函数实现之。在主函数中用 scanf 函数输入矩阵元素
以下是使用C语言编写的实现两个3x3矩阵相乘的自定义函数和主函数的代码:
```c
#include <stdio.h>
void matrix_multiply(int a[][3], int b[][3], int c[][3]) {
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] = 0;
for (k = 0; k < 3; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
}
int main() {
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int b[3][3] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
int c[3][3];
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
c[i][j] = 0;
}
}
matrix_multiply(a, b, c);
printf("Result of multiplication:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序中,`matrix_multiply` 函数接收两个3x3的矩阵 `a` 和 `b`,并将它们的乘积存储在另一个3x3的矩阵 `c` 中。主函数中,我们定义了两个3x3的矩阵 `a` 和 `b`,以及一个用于存储乘积的矩阵 `c`。然后我们将 `c` 中的所有元素初始化为0,并调用 `matrix_multiply` 函数来计算矩阵乘积。最后,我们输出结果。如果想对其进行多次调用可以在主函数中多次调用 `matrix_multiply` 函数。
阅读全文