我已经开始开发一个解决数独游戏的程序,我创建了一个名为SudokuSolver的类来封装“数独求解器”。类中有一个多维数组来存储数独的数据。程序编译得很好,但是当我运行它时,会抛出一个运行时异常,表明存在访问冲突,在箭头指向的行:
class SudokuSolver
{
private:
int sudoku[9][9];
bool valid(int sodoku[9][9]);
bool solve(int x,int y);
bool repeat(int x,int y,int num);
public:
SudokuSolver();
bool setSudoku(int sudoku[9][9]);
bool solveSudoku();
void printSudoku()const;
};
SudokuSolver::SudokuSolver()
{
for(int i = 0;i < 9;++i)
for(int j = 0;j < 9;++i)
------->--->---> sudoku[i][j] = 0;
}
你能告诉我这里发生了什么吗?这是我的任务,所以非常紧急。
答案 0 :(得分:1)
问题是你在第二个循环中做了++ i。
SudokuSolver::SudokuSolver()
{
for(int i = 0;i < 9;++i)
for(int j = 0;j < 9;++i) //Your error is here..
sudoku[i][j] = 0;
}
应该是:
SudokuSolver::SudokuSolver()
{
for(int i = 0;i < 9;++i)
for(int j = 0;j < 9;++j)
sudoku[i][j] = 0;
}