在2D中查找重复在运行时不会工作但在我调试时

时间:2014-01-16 18:24:25

标签: c# arrays debugging multidimensional-array

代码的目的是在每个水平行中找到数字1-9的重复。当然,当我开始工作时,我会做到这一点,它将在垂直行上工作。

所以这是我的代码,我认为它应该是一个工作代码,可以在所有水平行中找到2D数组中的重复。

我的Sudoku解决代码有一个非常奇怪的问题,它似乎在我调试时工作,但是当我运行它总是说它找到了重复。这是我错过了什么,或者代码中的逻辑是完全错误的,它不应该是,我在6小时后完全迷失了。

以下是代码:

public bool UniqRowX(Square rutor)
{
    int duplicate = 0;

    for (int row = 0; row < 9; row++ )
    {
        for (int find_duplicate_nummber = 1; find_duplicate_nummber < 10; find_duplicate_nummber++)
        {
            for (int col = 0; col < 9; col++)
            {
                if(rutor.SudokuArray[row, col].nummer==find_duplicate_nummber)
                {
                    duplicate = duplicate + 1;
                }
                if(duplicate>1)
                {
                    MessageBox.Show("Duplicate!");
                    return false;
                    break;
                }
            }
        }
    }
    MessageBox.Show("No Duplicate");
    return true;
}

Whole Solution

1 个答案:

答案 0 :(得分:1)

根据您的逻辑,看起来您应该在每次通过列后将'duplicate'变量设置为0.