Wątek przeniesiony 2015-09-01 16:13 z C/C++ przez ŁF.

Gdzie jest błąd ? - Prosty program.

0

Witam, po wpisaniu prawidłowej odpowiedzi wyskakuje mi, że wpisałem złą i nie przyznaje punktów, czy ktoś wie gdzie leży błąd ? - http://4programmers.net/Pastebin/4311 Plik tekstowy - http://4programmers.net/Pastebin/4312 Dodam, że wszystko wychodzi poprawnie, jak wypisuję odpowiedz przed jej podaniem to jest c, niestety mimo, że wpisuję c to i tak warunek w if'ie nie jest spełniony i przechodzi do else. Zmienna odpowiedz też jest typu string, więc nie mam pojęcia o co chodzi. Z góry thx.

0

Nie skończyłem czytać kodu po zobaczeniu tego "świetnego" case'a. Proponuję zmienić podejście do tego problemu, bo w tej chwili ilość kodu którą musisz napisać, by obsłużyć n pytań jest proporcjonalna do n - w takim wypadku równie dobrze mógłbyś te pytania i odpowiedzi zahardcodować.

Zamiast tego co robisz, możesz na przykład załadować pytania do std::vector<Question>, gdzie Question jest sensowną klasą, której use-case wyobrażam sobie w tej chwili tak:

int main()
{
    std::vector<Question> questions;
    int points = 0;
    // Tutaj kod odpowiedzialny za wczytywanie pytań

    // Czas na quiz:
    for (const Question& question : questions) {
        char answer;
        std::cin >> answer;
        
        if (question.isRightAnswer(answer))
           ++points;
    }
}

Prościej być chyba nie może.

0

Zdaję sobie sprawę, że nie jest to najoptymalniejszy kod, ale piszę go w celu ogarnięcia pętli itp. No i bardzo ciekawi mnie, gdzie leży przyczyna tego problemu, bo nic nie mogę znaleźć ;/

Ktoś wspomoże ?

0

Nikt nie wspomoże, bo ten kod jest maksymalnie nieczytelny.
Napisz go z wykorzystaniem klas (lub przynajmniej struktur) oraz z podziałem na sensowne funkcje.

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