Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c+中的3x3数组乘法+;_C++_C_Arrays - Fatal编程技术网

C++ c+中的3x3数组乘法+;

C++ c+中的3x3数组乘法+;,c++,c,arrays,C++,C,Arrays,我不确定我出了什么问题,我的代码似乎无法处理单整数以外的任何东西。我试图得到3x3数组,找到它的行列式,求出它的反函数,然后进行乘法得到I //matrix product for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { for (k = 0; k < 3; k++) { product[i][j] += array[i][k] * invertA[k][j];

我不确定我出了什么问题,我的代码似乎无法处理单整数以外的任何东西。我试图得到3x3数组,找到它的行列式,求出它的反函数,然后进行乘法得到I

//matrix product
for (i = 0; i < 3; i++) {
    for (j = 0; j < 3; j++) {
        for (k = 0; k < 3; k++) {
            product[i][j] += array[i][k] * invertA[k][j];
        }
    }
}

听起来您可能需要学习如何使用调试器逐步完成代码。有了一个好的调试器,您可以逐行执行您的程序,并查看它偏离预期的地方。这是一个必要的工具,如果你要做任何编程。进一步阅读:
product[3][3]
-->
product[3][3]={{0}}
//全局范围
--嗯,对不起?你必须像BLUEPIXY说的那样初始化
产品
。我假设这是一个学习经验,但如果你真的想认真对待矩阵,我建议你使用特征库除以行列式,但没有说明如何计算。整数值和算术是否足够?
int main() {

int array[3][3], invertA[3][3], product[3][3], i, j, k;  // The global scope 
// ask for input    
printf("Please enter 9 elements of the matrix seperated by a space: \n");
for (i = 0; i < 3; i++) {  //the loop - create a table of 3 x 3 
    for (j = 0; j < 3; j++) {
        scanf("%d", &array[i][j]);   //save user-input as integer (%d) into the matrix a[i][j]
    }
}
//a11 a12 a13 
invertA[0][0] = (array[1][1] * array[2][2] - array[2][1] * array[1][2]) / determinant;
invertA[0][1] = -(array[1][0] * array[2][2] - array[1][2] * array[2][0]) / determinant;
invertA[0][2] = (array[1][0] * array[2][1] - array[2][0] * array[1][1]) / determinant;
    //a21 a22 a23
invertA[1][0] = -(array[0][1] * array[2][2] - array[0][2] * array[2][1]) / determinant;
invertA[1][1] = (array[0][0] * array[2][2] - array[0][2] * array[2][0]) / determinant;
invertA[1][2] = -(array[0][0] * array[2][1] - array[2][0] * array[0][1]) / determinant;
       //a31 a32 a33
invertA[2][0] = (array[0][1] * array[1][2] - array[0][2] * array[1][1]) / determinant;
invertA[2][1] = -(array[0][0] * array[1][2] - array[1][0] * array[0][2]) / determinant;
invertA[2][2] = (array[0][0] * array[1][1] - array[1][0] * array[0][1]) / determinant;