我正在尝试创建一个如下所示的方法:
void Multiply(double *A, double *B, double *C, int N);
它是一个计算C = A * B
的函数。
A、B 和 C 是 NxN(方)矩阵,我必须通过指针来完成。
我编写的代码如下:
int Multiply(double *A, double *B, double *C, int N){
int i,j,k;
double sum;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
sum = 0;
for (k = 0; k < N; k++) {
sum = sum + (*(A+i*N+k)) * (*(B+k*N+i));
}
*(C+i*N+j) = sum;
}
}
}
它不会导致任何错误,而且也不起作用。
我看不出问题所在。请问有人可以帮忙吗?
最佳答案
C
的
i,j
元素是 A
的行 i
乘以 j
列。循环的核心应该是:B
的
sum = sum + (*(A+i*N+k)) * (*(B+k*N+j));
关于c - 在 C 中使用指针相乘矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27148616/