追问(真心不懂):
你能跟我说为什么吗?我不是已经在主函数中申请好数组了吗?Array3[k1][k2]=0的赋值的作用是什么?谢谢!
[解决办法]
初始化为 0,你虽然申请了数组,但数组的内存里的数据是以前保留的,可能不是0
你要计算的话,要初始化为0再行吧。
array3[k1][k2]中你申请时,内存中的数据是以前保留的,你一相加,就把以前的数据加了,所以就错了
你初始化为0,不就对了。
Array3[k1][k2]+=Array1[k1][k3]*Array2[k3][k2];
void multimatrix(double **&Array1,int row1,int col1, double **&Array2,int row2,int col2, double **&Array3,int row3,int col3){ for(int k1=0;k1<row3;k1++) for(int k2=0;k2<col3;k2++) { printf("%lf ", Array[k1][k2]);//加上这句,把以前保留的值输出来看下,是多少 Array3[k1][k2] = 0; //赋值0 for(int k3=0;k3<col1;k3++) Array3[k1][k2]+=Array1[k1][k3]*Array2[k3][k2]; }}