-2

我已经开始开发一个程序来解决数独问题,我创建了一个名为 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;
}

你能告诉我这里发生了什么吗???这是我的任务,所以非常紧急。

4

1 回答 1

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;
}
于 2013-10-05T00:15:10.687 回答