用c语言写两个3x3的矩阵相乘的函数
时间: 2024-01-21 09:18:09 浏览: 213
用c语言编写两矩阵相乘程序
以下是两个3x3矩阵相乘的函数,其中假设矩阵元素类型为float:
```
void matrixMultiply(float a[][3], float b[][3], float 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];
}
}
}
}
```
其中,a和b分别是两个输入矩阵,c是输出矩阵。函数在计算完矩阵乘积后,将结果存储在c中。
另外,如果你想要返回一个矩阵作为函数结果,可以使用如下代码:
```
float (*matrixMultiply(float a[][3], float b[][3]))[3] {
int i, j, k;
float (*c)[3] = malloc(sizeof(float[3][3]));
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];
}
}
}
return c;
}
```
在这个版本的函数中,除了计算矩阵乘积之外,它还将结果存储在动态分配的内存中,并将指向该内存的指针作为函数返回值。请注意,由于返回值是一个指针,因此需要使用malloc动态分配内存来存储输出矩阵c。
阅读全文