读书人

追问(真心不懂):解决思路

发布时间: 2012-05-01 12:48:58 作者: rapoo

追问(真心不懂):
你能跟我说为什么吗?我不是已经在主函数中申请好数组了吗?Array3[k1][k2]=0的赋值的作用是什么?谢谢!

[解决办法]
初始化为 0,你虽然申请了数组,但数组的内存里的数据是以前保留的,可能不是0
你要计算的话,要初始化为0再行吧。


array3[k1][k2]中你申请时,内存中的数据是以前保留的,你一相加,就把以前的数据加了,所以就错了
你初始化为0,不就对了。
Array3[k1][k2]+=Array1[k1][k3]*Array2[k3][k2];


C/C++ code
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];        }} 

读书人网 >C++

热点推荐