W trakcie wykonywania pętli int zmienia wartość bez powodu.

0

Jest to część kodu do sprawdzania poprawności wypełnionej planszy sudoku. Problem w tym, że gdy wpisuję liczby(te które powinny być) a więc program kończy obieg pętli z wartością zmiennej "dzielenie = 9" to pomiędzy tym break a if(dzielenie !=9) wartość dzielenia cofa się do 8. Ktoś widzi jakiś błąd w kodzie?

int dzielenie = 1;
for (int test = 0; test < liczba_test; test++) {
    for (int linia = 0; linia < 9; linia++) {
        for (int kolumna = 0; kolumna < 9; kolumna++) {
            if (tablica[test][linia][kolumna] / dzielenie == 1) {
                if (tablica[test][linia][kolumna] / 9 == 1) {
                    break;
                }

                dzielenie++;
                kolumna = 0;
            }
        }
        if (dzielenie != 9) {
            break;
        }
        dzielenie = 1;
    }
}
2

Akurat cały ten kod nie ma sensu z dwóch powodów:

  1. bo int/int = int więc na przykład 3/2 == 1 jest prawdą
  2. Bo skoro w tablicy liczby są wpisane w losowej kolejności to dlaczego niby nie moze się zdarzyć że tablica[test][linia][kolumna] juz dla pierwszej kolumny wynosi 9 i od razu skończysz pętlę z dzielenie równym 1?

1 użytkowników online, w tym zalogowanych: 0, gości: 1