我计算两个动态数组乘积的函数不起作用

My function that calculates the product of two dynamic arrays does not work

本文关键字:数组 不起作用 函数 动态 两个 计算      更新时间:2023-10-16

我写了一个函数来计算两个动态数组的乘积。我的函数给我随机数而不是预期结果。我有两个函数来初始化动态矩阵 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标记"问题所在"的行上。
  • 索引将取决于您存储DynMatADynMatB的方式(按行或按列)。
  • 您不是在计算总和(就像在做矩阵乘积时应该的那样)。
  • 函数结束时,您也有内存泄漏。
  • 您应该使用更新的编译器。