• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Quzi, problem z uporządkowaniem, Robione z pomoca Kursu C++ odc. 2

Object Storage Arubacloud
0 głosów
317 wizyt
pytanie zadane 6 lutego 2016 w C i C++ przez KonDZIKs Bywalec (2,770 p.)

Witam. :)
Obejrzałem sobie wczoraj 2 odcinek z Kursu programowania C++. I postanowiłem zrobić coś po swojemu nie żywcem brać z kursu. Przechodząc do rzeczy chciałem zrobić mały quiz składający się z 5 pytań ale chyba trochę za bardzo uwierzyłem w swoje możliwości ponieważ zgubiłem sie w kodzie (swoim własnym) i nie wiem co z czym ma się teraz zjeść. Mógłby mi to ktoś wytłumaczyć i jak to zrobić ,żeby się zaraz nie zgubić i ,żeby to miało ręce i nogi.
Kod:

#include <iostream>

using namespace std;
string tak, Tak, odp, a, b, c;

int main()
{
    cout << "Witam w Naruto Quiz!!!" << endl;
    cout << "Czy chcesz wziac udzial?"<< endl;
    cout << "Wybierz Tak lub Nie:";
    cin>> odp;

     if ((odp=="tak")||(odp=="Tak"))
     {
     cout <<"Dziekujemy za podjecie wyzwania"<<endl;
     cout <<"Pierwsze pytanie:"<<endl;
     cout <<"Kto jest glownym bohaterem?"<<endl;
     cout <<"a) Naruto" <<endl;
     cout <<"b) Sakura"<<endl;
     cout <<"c) Sasuke"<<endl;
     cin >> a, b, c;

     if (odp=="a")
     {
         cout <<"Brawo zdobywasz punkt";
     }
     else
     {
         cout <<"Zla odpowiedz"
     }
    }
    else
    {
    cout <<"Ok moze innym razem";
    }

    return 0;
}

 

3 odpowiedzi

+1 głos
odpowiedź 6 lutego 2016 przez mar3 Gaduła (3,040 p.)
Linia 21 powinieneś wczytać do zmiennej odp.
komentarz 6 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)

Teraz zrobiłem to inaczej przerobiłem ten kod i wygląda on o tak:
 

#include <iostream>

using namespace std;
string tak, Tak, odp, a, b, c;

int main()
{
    cout << "Witam w Naruto Quiz!!!" << endl;
    cout << "Czy chcesz wziac udzial?"<< endl;
    cout << "Wybierz Tak lub Nie:";
    cin>> odp;

     if ((odp=="tak")||(odp=="Tak"))
     {
     cout <<"Dziekujemy za podjecie wyzwania"<<endl;
    }
    else
    {
    cout <<"Ok moze innym razem";
    }
    cout <<"Pierwsze pytanie:"<<endl;
     cout <<"Kto jest glownym bohaterem?"<<endl;
     cout <<"a) Naruto" <<endl;
     cout <<"b) Sakura"<<endl;
     cout <<"c) Sasuke"<<endl;
     cin >> a, b, c;

     if (odp=="a")
     {
         cout <<"Brawo zdobywasz punkt";
     }
     else
     {
         cout <<"Zla odpowiedz";
     }

     cout <<"Drugie pytanie:"<<endl;
     cout <<"Jak zmarl czwarty Hokage"<<endl;
     cout <<"a) Ze starosci" <<endl;
     cout <<"b) Na raka"<<endl;
     cout <<"c) W walce z Orochimaru"<<endl;
     cin >> a, b, c;

     if (odp=="c")
     {
         cout <<"Brawo zdobywasz punkt";
     }
     else
     {
         cout <<"Zla odpowiedz";
     }
    return 0;
}

Tylko w wciaż mam problem ponieważ teraz gdy wyświetla pytanie czy chcesz wziąć udział w quize i wpisze się nie. To w ciągu dalszym lecą pytania. Jak zrobić ,zeby to już zamknąć wyłączyć bo chyba z tego z co wiem to to co jest poniżej kodu będzie wyświetlane. Czy tak jak robiłem na początku zamknąć to  w tamtym if'ie wszystko i wkleić to co zrobiłem teraz? :)

komentarz 6 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)
Ten problem naprawiłem przeniosłem tak jak było na początku lecz powstał nowy.

Kolejnym problemem jest to ,że wyświetla złą odpowiedz nawet gdy odpowiedz jest poprawna ;/
0 głosów
odpowiedź 6 lutego 2016 przez Jutta Obywatel (1,190 p.)
edycja 7 lutego 2016 przez Jutta

Dlatego, że cały czas w zmiennej odp jest "tak" i nigdy nie będzie a, b,c . Patrz co napisał mar3. Tylko ja był dala Nowa zmienną dla odpowiedzi na pytania np. ODP. Pozdrawiam Aha a te zmienne tak, Tak, a,b,c są niepotrzebne bo używasz tylko odp przecież.

Poniżej kod:

#include <iostream>

using namespace std;

string odp, ODP;

int main()
{
    cout << "Witam w Naruto Quiz!!!" << endl;
    cout << "Czy chcesz wziac udzial?"<< endl;
    cout << "Wybierz Tak lub Nie:";
    cin>> odp;

     if ((odp=="tak")||(odp=="Tak"))
     {
        cout <<"Dziekujemy za podjecie wyzwania"<<endl;
        cout <<"Pierwsze pytanie:"<<endl;
        cout <<"Kto jest glownym bohaterem?"<<endl;
        cout <<"a) Naruto" <<endl;
        cout <<"b) Sakura"<<endl;
        cout <<"c) Sasuke"<<endl;
        cout <<"Podaj odpowiedz: ";
        cin >> ODP;

        if (ODP=="a")
        {
         cout <<"Brawo zdobywasz punkt";
        }
        else
        {
         cout <<"Zla odpowiedz";
        }
    }
    else
    {
    cout <<"Ok moze innym razem";
    }
    return 0;
}

 

komentarz 8 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)
Obejrzałem oba filmy. :D
I mam do Ciebie pytanie Jutta przerobiłaś to kilka razy więc na pewno masz jakieś zadania czy mogłabyś się ze mną nimi podzielić ,żebym poszerzył swoja wiedzie przynajmniej na razie z 1 i 2 lekcji. 3 przerobiłem ale za bardzo nie rozumiem to tez jakiś prosty materiał z 3. :)
Jeżeli to dla Ciebie jakiś problem to po prostu powiedz. :) Bądź nie chcesz po prostu. :D
komentarz 9 lutego 2016 przez Jutta Obywatel (1,190 p.)
edycja 9 lutego 2016 przez Jutta

Problemu nie ma, ale ja robiłam słowo w słowo to co na filmach więc nie ma sensu tego przeklejać (tym bardziej, że nie wiem czy to nie byłby plagiat lub coś w tym stylu);

dla przykładu jeden kod (jak widzisz identyczny z tym w kursie):

 

#include <iostream>

using namespace std;

int uczniowie, cukierki,x,y;

int main()
{
    cout << "Ilu uczniow jest w klasie Jasia:" ;
    cin >> uczniowie;
    cout << "Ila mama kupila cukierkow:" ;
    cin >> cukierki;
    x=cukierki/(uczniowie-1);
    cout << "Dla kazdego ucznia jest cukierkow:"<<x;
    y=cukierki-(uczniowie-1)*x;
    cout <<endl<< "Dla Jasia na wieczor cukierkow:"<<y<<endl;

    return 0;
}

pozdrawiam,

edit:

aha przypomniałam sobie, że przecież na stronie http://miroslawzelent.pl/ są pod każdym kursem paczki z tymi przykładami więc sobie je po prostu pobierz.Ja nigdy ich nie pobierałam bo wolę sama pisać;

komentarz 14 lutego 2016 przez Jutta Obywatel (1,190 p.)

Witam!

Z ta pętlą to źle napisałam;

Przecież każde pytanie jest innesad; Bez pętli zrobiłam liczenie punktów (tak jak napisał Porcupine) tak jak poniżej :

#include <iostream>

using namespace std;

string odp, ODP;
int punkt=0;

int main()
{
    cout << "Witam w Naruto Quiz!!!" << endl;
    cout << "Czy chcesz wziac udzial? ";
    cout << "tak / nie: ";
    cin>> odp;

     if (odp=="tak")
     {
         cout <<"Dziekujemy za podjecie wyzwania"<<endl;

         cout <<"Pierwsze pytanie: Kto jest glownym bohaterem?"<<endl;
         cout <<"a) Naruto" <<endl;
         cout <<"b) Sakura" <<endl;
         cout <<"c) Sasuke" <<endl;
         cin >> ODP;

             if ((ODP=="a")||(ODP=="A"))
                 {
                     cout <<"Brawo! Zdobywasz jeden punkt!";
                     punkt++;
                 }
             else
                 {
                     cout <<"Zla odpowiedz. Brak punktu.";

                 }

         cout<<endl;
         cout <<"Drugie pytanie: Jak zmarl czwarty Hokage?"<<endl;
         cout <<"a) Ze starosci" <<endl;
         cout <<"b) Na raka"<<endl;
         cout <<"c) W walce z Orochimaru"<<endl;
         cin >> ODP;

     if ((ODP=="c")||(ODP=="C"))
                 {
                     cout <<"Brawo! Zdobywasz jeden punkt!";
                     punkt++;
                 }
             else
                 {
                     cout <<"Zla odpowiedz. Brak punktu.";

                 }

         cout<<endl;
         cout <<"Trzecie pytanie: Co najbardziej uwielbial jesc Naruto?"<<endl;
         cout <<"a) Sajgonki"<<endl;
         cout <<"b) Ramen"<<endl;
         cout <<"c) Kanapki z szynka"<<endl;
         cin >> ODP;
     if ((ODP=="b")||(ODP=="B"))
       {
                     cout <<"Brawo! Zdobywasz jeden punkt!";
                     punkt++;
                 }
             else
                 {
                     cout <<"Zla odpowiedz. Brak punktu.";

                 }
         cout<<endl;
         cout <<"Czwarte pytanie: Kto przez caly czas podkochuje sie w Naruto"<<endl;
         cout <<"a) Hinata"<<endl;
         cout <<"b) Sakura"<<endl;
         cout <<"c) Tsunade"<<endl;
         cin >> ODP;
       if ((ODP=="a")||(ODP=="A"))
                  {
                     cout <<"Brawo! Zdobywasz jeden punkt!";
                     punkt++;
                 }
             else
                 {
                     cout <<"Zla odpowiedz. Brak punktu.";

                 }

         cout<<endl;
         cout <<"Piate pytanie: Dlaczego Naruto chce sprowadzic Sasuke spowrotem do Konohy? (Poniewaz)"<<endl;
         cout <<"a) Jest jego przyjacielem"<<endl;
         cout <<"b) Jest jego wrogiem i chce go zlapac"<<endl;
         cout <<"c) Jest zaginionym"<<endl;
         cin >> ODP;
      if ((ODP=="a")||(ODP=="A"))
                  {
                     cout <<"Brawo! Zdobywasz jeden punkt!";
                     punkt++;
                 }
             else
                 {
                     cout <<"Zla odpowiedz. Brak punktu.";

                 }
     cout<<endl;
     cout <<"Dziekuje za wziecie udzialu w Quizie"<<endl;
     cout <<"Twoja zdobyta liczba punktow: "<<punkt;
    }

    else
    {
    cout <<"Ok moze innym razem";
    }
    return 0;
}

A teraz zobaczę jak Twój kod bo też widzę, że wkleiłeś;

 

pozdrawiam,

komentarz 17 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)
W którym odcinku jest jakaś wzmianka o tym czy sama jakoś do tego doszłaś znalazłaś w internecie? :D
komentarz 18 lutego 2016 przez Jutta Obywatel (1,190 p.)
Na podstawie podpowiedzi Porcupine i kursu. I tak jestem pewna ze można będzie ten kod uprościć po odcinku 7.
0 głosów
odpowiedź 13 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)

Starałem się zrobić podliczanie pkt ale chyba wyszła mi całkowita głupota
Kod

#include <iostream>

using namespace std;
string odp, ODP;

int main()
{
    cout << "Witam w Naruto Quiz!!!" << endl;
    cout << "Czy chcesz wziac udzial?"<< endl;
    cout << "Wybierz Tak lub Nie:";
    cin>> odp;

     if ((odp=="tak")||(odp=="Tak"))
     {
     cout <<"Dziekujemy za podjecie wyzwania"<<endl;
    cout <<"Pierwsze pytanie:"<<endl;
     cout <<"Kto jest glownym bohaterem?"<<endl;
     cout <<"a) Naruto" <<endl;
     cout <<"b) Sakura"<<endl;
     cout <<"c) Sasuke"<<endl;
     cin >> ODP;

      for (int i=0;i<=ODP; i++)
      {
          cout <<i<<"Twoja liczba pkt "<<ODP;
     if (ODP=="a")
     {
         cout <<"Brawo zdobywasz punkt"<<endl;
     }
     else
     {
         cout <<"Zla odpowiedz"<<endl;
     }

     cout <<"Drugie pytanie:"<<endl;
     cout <<"Jak zmarl czwarty Hokage?"<<endl;
     cout <<"a) Ze starosci" <<endl;
     cout <<"b) Na raka"<<endl;
     cout <<"c) W walce z Orochimaru"<<endl;
     cin >> ODP;

     if (ODP=="c")
     {
         cout <<"Brawo zdobywasz punkt"<<endl;
     }
     else
     {
         cout <<"Zla odpowiedz"<<endl;
     }
     cout <<"Trzecie pytanie:"<<endl;
     cout <<"Co najbardziej uwielbial jesc Naruto?"<<endl;
     cout <<"a) Sajgonki"<<endl;
     cout <<"b) Ramen"<<endl;
     cout <<"c) Kanapki z szynka"<<endl;
     cin >> ODP;
     if (ODP=="b")
     {
         cout <<"Brawo zdobywasz punkt"<<endl;
     }
     else
     {
         cout <<"Zla odpowiedz"<<endl;
     }
     cout <<"Czwarte pytanie:"<<endl;
     cout <<"Kto przez caly czas podkochuje sie w Naruto"<<endl;
     cout <<"a) Hinata"<<endl;
     cout <<"b) Sakura"<<endl;
     cout <<"c) Tsunade"<<endl;
     cin >> ODP;
     if (ODP=="a")
     {
         cout <<"Brawo zdobywasz punkt"<<endl;
     }
     else
     {
         cout <<"Zla odpowiedz"<<endl;
     }
     cout <<"Piate pytanie:"<<endl;
     cout <<"Dlaczego Naruto chce sprowadzic Sasuke spowrotem do Konohy? (Poniewaz)"<<endl;
     cout <<"a) Jest jego przyjacielem"<<endl;
     cout <<"b) Jest jego wrogiem i chce go zlapac"<<endl;
     cout <<"c) Jest zaginionym"<<endl;
     cin >> ODP;
     if (ODP=="a")
     {
         cout <<"Brawo zdobywasz punkt"<<endl;
     }
     else
     {
         cout <<"Zla odpowiedz"<<endl;
     }
     cout <<"Dziekuje za wziecie udzialu w Quizie"<<endl;
     cout <<"Zaraz zostanie wyswietlona Twoja zdobyta liczba punktow:"<<endl;
     cout <<"Punkty:";
    }
    }
    else
    {
    cout <<"Ok moze innym razem";
    }
    return 0;
}

 

komentarz 14 lutego 2016 przez Jutta Obywatel (1,190 p.)

No tak; Bo jednak pętla tutaj nie jest potrzebna.

Poza tym linie 23-25 są błędne (co na pewno zaznacza Code::Blocks czerwonym kwadracikiem po lewej stronie kodu) tj.:

 for (int i=0;i<=ODP; i++)
      {
          cout <<i<<"Twoja liczba pkt "<<ODP;

zmienna "ODP" jest typu string wczytuje się w nią to co wpisał użytkownik na klawiaturze czyli w tym wypadku litery: a, b, c; nie można ich porównać z liczbą "i" zmienna int;

No bo co to miałoby znaczyć, że pętla ma się wykonać dopóki i będzie mniejsze niż litera "a"?
----------

pętla może być np. taka: for (int i=0;i<=5; i++)

wykona się 6 razy.

---------------------

Poniżej dokładniej:

#include <iostream>

using namespace std;

string ODP="a";

int main()
{
    cout << "Hello world!" << endl;

    for (int i=0;i<=5; i++)

        {
          cout <<i<<" Twoja liczba pkt "<<ODP<<endl;
        }
    return 0;
}

To na konsoli będzie:

Hello world!
0 Twoja liczba pkt a
1 Twoja liczba pkt a
2 Twoja liczba pkt a
3 Twoja liczba pkt a
4 Twoja liczba pkt a
5 Twoja liczba pkt a

 

 

Tu drugi przyklad petli:

#include <iostream>

using namespace std;

int punkty=0;

int main()
{
    cout << "Hello world!" << endl;

    for (int i=0;i<=5; i++)

        {
           punkty=punkty+i;
           cout <<i<<" Twoja liczba punktow: "<<punkty;
           cout<<endl;

        }
    return 0;
}

 

komentarz 17 lutego 2016 przez KonDZIKs Bywalec (2,770 p.)
Ok :) Dziękuje za wytłumaczenie :D
komentarz 18 lutego 2016 przez Jutta Obywatel (1,190 p.)
Proszę bardzo

Podobne pytania

0 głosów
3 odpowiedzi 281 wizyt
pytanie zadane 29 marca 2016 w C i C++ przez Arek9922 Nowicjusz (200 p.)
0 głosów
1 odpowiedź 559 wizyt
pytanie zadane 26 marca 2019 w C i C++ przez Nicolas Wielocha Nowicjusz (140 p.)
0 głosów
1 odpowiedź 303 wizyt

92,545 zapytań

141,387 odpowiedzi

319,503 komentarzy

61,930 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...