我写了一个计算两个动态数组的乘积的函数。我的功能给我随机数字,而不是预期的结果。我有两个函数初始化动态矩阵A和B.现在,当我尝试计算动态矩阵C,使得C = A * B时,我的函数没有显示正确的结果。我检查了我的代码,看起来我在某处做错了,但我无法确切地知道问题出在哪里。下面,我粘贴了计算C = A * B的函数。我使用Dev-C++在C++中编写它。您的帮助将非常感激。我的函数计算两个动态数组的乘积不起作用
void CalculateDynamicMatC(double *DynMatA, double *DynMatB, int n)
{
int i, j, k, m=10;
double *DynMatC=new double [m*m] ;
for(i=0; i<n; i++)
for(j=0; j<n; j++)
for(*DynMatC=k=0; k<n; k++)
*DynMatC = *(DynMatA)*(*DynMatB); //where the problem is!!!
for(int r=0; r<n; r++, cout<<endl)
for(int c=0; c<n; c++)
cout << setw(5) << *(DynMatC+n*r+c);
}
您在标记为“问题出在哪里”的行上没有使用您的索引'i,j,k'。此外,你不计算总和(正如你在做矩阵产品时所做的那样)。 – 2012-04-29 03:07:18
我建议阅读数组,指针和他们的关系。如果你找不到这个问题,你显然不了解事情的工作原理。 (DynMatC + n * i + j)= *(DynMatA + n * i + j)*(* DynMatB + n * i + j); – Jasper 2012-04-29 03:11:04