Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Do while - program szaleje ,gdy wcisne literkę

Ostatnio zmodyfikowano 2014-01-22 16:26
Autor Wiadomość
OnemoreS
Temat założony przez niniejszego użytkownika
Do while - program szaleje ,gdy wcisne literkę
» 2014-01-14 10:50:24
C/C++
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    int a;
    do
    {
        cout << "Podaj stolice Grecji" << endl;
        cout << "1)Londyn 2)Paryz 3)Ateny 4)Moskwa" << endl;
        cin >> a;
       
       
        if( a == 3 )
             cout << "brawo , prawidlowa odpowiedz" << endl;
       
        if( a == 1 || a == 2 || a == 4 )
             cout << "niestety zla odpowiedz , prawidlowa odpowiedz to 3)Ateny" << endl;
       
    } while( a != 1 && a != 2 && a != 3 && a != 4 );
   
   
   
   
   
   
   
   
   
   
   
    getch();
    return 0;
}

Podczas odpalania programu mamy wybór 1,2,3,4 , gdy podamy inną cyferkę program powtórzy , zaś gdy podamy  literkę program się sypie , można temu jakoś zaradzić ?
P-102136
alixir
» 2014-01-14 11:09:30
C/C++
do
{
    cin.clear();
    cin.sync();
    cout << "Podaj stolice Grecji" << endl;
    cout << "1)Londyn 2)Paryz 3)Ateny 4)Moskwa" << endl;
    cin >> a;
   
} while( !( a == 1 || a == 2 || a == 3 || a == 4 ) || !cin.good() );

if( a == 3 )
     cout << "brawo , prawidlowa odpowiedz" << endl;

if( a == 1 || a == 2 || a == 4 )
     cout << "niestety zla odpowiedz , prawidlowa odpowiedz to 3)Ateny" << endl;

P-102137
OnemoreS
Temat założony przez niniejszego użytkownika
» 2014-01-14 11:20:12
dziękuje ślicznie

-----------------------
Mam jeszcze 2 problemy:

1)Gdyż zawodnik ma 3 szanse , ale program nie uwzględnia straty szansy przy poprzednim pytaniu.
2)Chciałbym aby te pytania były losowanie  , zapewne trzeba tu użyć tablicy i losowania
rand();
 ale niestety wszystkie przykłady w kursie są pokazane na cyferkach i nie wiem jak się za to zabrać.Może jesteście w stanie podpowiedzieć ?


C/C++
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    int a, b, c;
    int szansa = 3;
    int s = szansa - 1;
    cout << "Witamy w turnieju !" << endl;
    cout << "- Program wylosuje 5 pytan" << endl;
    cout << "- Gracz posiada 3 szanse" << endl;
    cout << "- Po kazdej zlej odpowiedzi , szansa zostanie utracona" << endl;
    cout << "- Gdy wszystkie szanse zostana utracone - przegrywasz" << endl;
    cout << "- Gdy odpowiesz na pytania nie tracac wszystkich szans- wygrywasz" << endl;
   
    do
    {
        cin.clear();
        cin.sync();
        cout << "Podaj stolice Grecji" << endl;
        cout << "1)Londyn 2)Paryz 3)Ateny 4)Moskwa" << endl;
        cin >> a;
       
    } while( !( a == 1 || a == 2 || a == 3 || a == 4 ) || !cin.good() );
   
    if( a == 3 )
         cout << "brawo , prawidlowa odpowiedz" << endl;
   
    if( a == 1 || a == 2 || a == 4 )
         cout << "niestety zla odpowiedz , prawidlowa odpowiedz to 3)Ateny" << endl;
   
    cout << "Twoja liczba szans wynosi: " << s << endl;
    cout << "------------------------------------------------------------" << endl;
    if( szansa == 0 )
         cout << "niestety wykorzystales wszystkie szanse - porazka!" << endl;
   
   
   
   
   
    do
    {
        cin.clear();
        cin.sync();
        cout << "W ktorym roku wybuchla II wojna swiatowa" << endl;
        cout << "1)1939 2)1940 3)1941 4)1942" << endl;
        cin >> b;
       
    } while( !( b == 1 || b == 2 || b == 3 || b == 4 ) || !cin.good() );
   
    if( b == 1 )
         cout << "brawo , prawidlowa odpowiedz" << endl;
   
    if( b == 2 || b == 3 || b == 4 )
         cout << "niestety zla odpowiedz , prawidlowa odpowiedz to 1)1939" << endl;
   
    cout << "Twoja liczba szans wynosi: " << s << endl;
    cout << "------------------------------------------------------------" << endl;
    if( szansa == 0 )
   
   
         cout << "niestety wykorzystales wszystkie szanse - porazka!" << endl;
   
    do
    {
        cin.clear();
        cin.sync();
        cout << "Ktora reprezentacja pilki noznej wygrala mundial w 2006 roku" << endl;
        cout << "1)Hiszpania 2)Brazylia 3)Portugalia 4)Wlochy" << endl;
        cin >> c;
       
    } while( !( c == 1 || c == 2 || c == 3 || c == 4 ) || !cin.good() );
   
    if( c == 4 )
         cout << "brawo , prawidlowa odpowiedz" << endl;
   
    if( c == 1 || c == 2 || c == 3 )
         cout << "niestety zla odpowiedz , prawidlowa odpowiedz to 4)Wlochy" << endl;
   
    cout << "Twoja liczba szans wynosi: " << s << endl;
    cout << "------------------------------------------------------------" << endl;
   
    if( szansa == 0 )
   
         cout << "niestety wykorzystales wszystkie szanse - porazka!" << endl;
   
   
   
   
   
   
   
   
   
   
   
    getch();
    return 0;
}
P-102138
alixir
» 2014-01-14 13:31:09
Usuń tą linię:
int s = szansa - 1;


Dopisz do każdej z instrukcji (w przypadku błędnej odpowiedzi)
C/C++
if( a == 1 || a == 2 || a == 4 ) {
    cout << "niestety zla odpowiedz , prawidlowa odpowiedz to 3)Ateny" << endl;
    szansa--;
}

Zmień zmienną wyświetlającą pozostałe szansy
cout << "Twoja liczba szans wynosi: " << s << endl;
P-102141
OnemoreS
Temat założony przez niniejszego użytkownika
» 2014-01-14 15:50:42
świetnie , jeszcze tylko muszę randomka odkryć i rozbudować program .
P-102155
leon_w
» 2014-01-14 15:55:58
Pytania umieszczasz w tablicy, i losujesz tylko cyfrę, którą wstawiasz do indeksu tablicy.
P-102157
OnemoreS
Temat założony przez niniejszego użytkownika
» 2014-01-14 16:04:52

C/C++
do
{
    char pytania[ 3 ]
    cin.clear();
    cin.sync();
    cout << "Podaj stolice Grecji" << pytania[ 1 ] << endl;
    cout << "1)Londyn 2)Paryz 3)Ateny 4)Moskwa" << endl;
    cin >> a;
   
} while( !( a == 1 || a == 2 || a == 3 || a == 4 ) || !cin.good() );

if( a == 3 )
     cout << "brawo , prawidlowa odpowiedz" << endl;

if( a == 1 || a == 2 || a == 4 )
     cout << "niestety zla odpowiedz , prawidlowa odpowiedz to 3)Ateny" << endl;

cout << "Twoja liczba szans wynosi: " << s << endl;
cout << "------------------------------------------------------------" << endl;
if( szansa == 0 )
     cout << "niestety wykorzystales wszystkie szanse - porazka!" << endl;


Nie jestem w stanie z kursu nauczyć się tego , gdyż wszystko tam jest przedstawione na liczbach :( chcę ten kawałek kodu aby był 1 zmienną i random losował z tych zmiennych  , ale nie potrafię .
P-102159
leon_w
» 2014-01-14 16:15:17
C/C++
char pytania[ 3 ]
W jednej tablicy char, przechowujesz tylko jeden znak. Najlepiej było by to zrobić na tablicy stringów.
C/C++
#include <string>

string pytania[ 10 ] = { "pytanie 1 \n odpowiedzi", "pytanie 2 \n odpowiedzi" itd...}

Losujesz cyfrę (od 0 do max ile elementów w tablicy) i wstawiasz ją jako nr. tablicy.
P-102161
« 1 » 2
  Strona 1 z 2 Następna strona