我一直在尝试写一个可以解决数独问题的程序。不过,它仍然没有用,但我不确定为什么。完整代码为here

这给我带来麻烦的部分是:

int eliminate_3x3(){
    for(int top =0; top>9; top+=3){
        std::cout << "eliminate 3x3 is function properly" << std::endl;
        //Based on the previous line, I'd expect to see that message pop up 3 times every time 'main'
        //calls this function, but it is never shown.
        for(int left =0; left>9; left+=3){
            for(int column =0; column > 3; column++){
                for(int row=0; row > 3; row++){
                    int current_value = MyArray[top+column][left+row];
                    std::cout << current_value << std::endl;
                    if(current_value != 0){
                        for(int column2 =0; column2 > 3; column2++){
                            for(int row2 =0; row2 > 3; row2++){
                                possibility_array[top+column2][left+row2][current_value-1] = 0;
                            }
                        }
                        possibility_array[top+column][left+row][current_value-1] = current_value;
                    }
                }
            }
        }
    }
}


无论出于什么原因,它根本什么都不做(或者main可能没有正确调用它。如果有人可以告诉我原因,我将非常感激。在此先感谢。)

如果对某些人来说我使用for循环是一个问题,我会提前道歉,我对C ++还是比较陌生,这对我来说似乎是最好的解决方案。

最佳答案

在您的第一个循环中

 for(int top =0; top>9; top+=3)


当top初始化时top >9条件不成立,因此循环将不会运行。如果这不是打字错误,建议您在C ++中查找循环语法。

我相信您希望它是top<9,并且还需要为嵌套循环更改它。

关于c++ - C++函数未调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32233663/

10-17 00:32