C语言求任意大小的两个矩阵的乘积且参数为二维数组的函数
时间: 2024-03-12 14:44:42 浏览: 77
C 代码 设置任意大小的矩阵乘法问题 A=B乘C.rar
可以使用以下C语言函数来计算任意大小的两个矩阵的乘积:
```c
void matrix_multiply(int a[][MAX_COL], int b[][MAX_COL], int c[][MAX_COL], int a_rows, int a_cols, int b_cols) {
/*
* 计算任意大小的两个矩阵的乘积
* a: 第一个矩阵,二维数组
* b: 第二个矩阵,二维数组
* c: 乘积矩阵,二维数组
* a_rows: 矩阵a的行数
* a_cols: 矩阵a的列数
* b_cols: 矩阵b的列数
*/
if (a_cols != sizeof(b) / sizeof(b[0])) {
printf("矩阵a的列数不等于矩阵b的行数");
return;
}
for (int i = 0; i < a_rows; i++) {
for (int j = 0; j < b_cols; j++) {
for (int k = 0; k < a_cols; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
}
```
其中,参数 `a` 和 `b` 分别表示两个矩阵,均为二维数组;参数 `c` 表示乘积矩阵,也是一个二维数组;参数 `a_rows` 表示矩阵 `a` 的行数;参数 `a_cols` 表示矩阵 `a` 的列数;参数 `b_cols` 表示矩阵 `b` 的列数。
函数首先检查矩阵的大小是否满足相乘的条件,如果不满足则输出错误信息并返回。然后,使用三层循环计算乘积矩阵的每个元素,并将结果存储在 `c` 数组中。
阅读全文