c++用数组写一个矩阵相乘的代码,C=A×B,A.B分别为m×n,n×l的矩阵,开头为bool MatrixMulti(double* A, double* B, double* C, int M, int N, int L)
时间: 2024-02-11 12:05:46 浏览: 17
以下是使用数组实现矩阵相乘的C++代码。
```
bool MatrixMulti(double* A, double* B, double* C, int M, int N, int L)
{
// 检查矩阵维度是否匹配
if (N <= 0 || M <= 0 || L <= 0) {
return false;
}
// 初始化矩阵C
for (int i = 0; i < M; ++i) {
for (int j = 0; j < L; ++j) {
C[i * L + j] = 0;
}
}
// 计算矩阵C的值
for (int i = 0; i < M; ++i) {
for (int j = 0; j < L; ++j) {
for (int k = 0; k < N; ++k) {
C[i * L + j] += A[i * N + k] * B[k * L + j];
}
}
}
return true;
}
```
其中,参数A、B、C分别为矩阵A、B、C在内存中的首地址,M、N、L分别为矩阵A、B、C的行数和列数。在函数内部,首先检查矩阵维度是否合法,然后初始化矩阵C中的元素为0,最后使用三重循环计算矩阵C的值。在计算矩阵C的值时,使用了数组下标计算公式,即C[i * L + j]表示矩阵C中第i行第j列元素的地址。