Sprawdzenie programu

Odpowiedz Nowy wątek
2015-01-23 22:30
Dreamson
0

Witam, sprawdzałem program dla wielu testów, ale chcę mieć pewność, że dla wszystkich jest poprawny. Chodzi o rozwiązywanie sudoku, dla niewiadomych wpisywane jest 0. Z góry dzięki za pomoc. Kod - http://4programmers.net/Pastebin/3775

Ktoś się wypowie ?

Wydaję mi się, że dobry, ale niech ktoś bardziej doświadczony się jeszcze wypowie.

Czy może ktoś sprawdzić ten kod, zastanawiam się nad nim i sam jestem ciekaw jego poprawności.

Naprawdę nikt nie pomoże ?

Pozostało 580 znaków

2015-01-25 13:49
0

Podbij jeszcze z 5 razy udając 3 różne osoby geniuszu. Nie, nikomu się tego sprawdzać nie będzie chciało. Wygeneruj sobie przypadki testowe i sprawdź czy działa.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2015-01-25 18:57
0

Witam, sprawdzałem program dla wielu testów, ale chcę mieć pewność, że dla wszystkich jest poprawny.

Dopóki nie poprawisz ewidentnych błędów, zapomnij o testach. Pierewsza z brzegu funkcja (linia 14):

bool rozwiazanie(int tab[N][N])
{
    int rzedy,kolumny;//<--- przypadkowe wartości (zobacz niżej)
    if (!znajdzpuste(tab,rzedy,kolumny))//<--- bum!!!
    {
        return true;//<--- nie ma pustych pól to rozwiązano???
    }
    for (int liczba=1; liczba<=N; liczba++)
    {

        if(sprawdz(tab,rzedy,kolumny,liczba))
        {
            {//<--- to nie błąd , ale po co?
                tab[rzedy][kolumny]=liczba;
            }

            if (rozwiazanie(tab))//<--- nie rozumiem (chyba zgłupiałem)
            {
                return true;
            }
            tab[rzedy][kolumny] = puste.oznaczenie;//<--- struktura przechowująca jedną stałą wartość
        }
    }
    return false;
}

Jeszcze perełka (linia 95):

bool sprawdz(int tab[N][N], int rzedy, int kolumny, int liczba)
{
    return !sprrzedy(tab,rzedy,liczba) && !sprkolumny(tab,kolumny,liczba) && !sprbloku(tab,rzedy-rzedy % 3,kolumny-kolumny % 3, liczba);
    {
        return true;
    }
    return false;
}

linia 175:

if ((tab[w][k])<0 or (tab[w][k])>9) 

To ci się kompiluje? Bo według mnie wymaga dołączenie pliku z definicjami.
Reszta podobnie.

Jeśli mnie pamięć nie myli to powszechnie używany Dev, z domyślnym kompilatorem i ustawieniami, dalej wspiera 'or' jako operator. (or jako operator: http://stackoverflow.com/ques[...]d-and-become-an-operator-in-c ) - Tacet 2015-01-25 19:21
Dlatego pytam. Nawet jeśli to lepiej użyć normalnych operatorów. - Rekman 2015-01-25 19:38
Oczywiście. Tak tylko bronie pytającego... że może faktycznie testował... - Tacet 2015-01-25 19:44

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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