我一直在尝试写一个可以解决数独问题的程序。不过,它仍然没有用,但我不确定为什么。完整代码为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/