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.
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.
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 ?
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.