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

Rozdział 16.Praca domowa z funkcji losujących.

Ostatnio zmodyfikowano 2011-04-01 21:32
Autor Wiadomość
Hankete
Temat założony przez niniejszego użytkownika
Rozdział 16.Praca domowa z funkcji losujących.
» 2011-04-01 19:53:26
Witam ! Mam problem z tym zadaniem. 
3. Jeżeli podana liczba jest za duża (za mała) gra wypisuje stosowny komunikat i powraca do kroku 2.
Otóż nie umiem powrócić do tego drugiego etapu. Funkcja return main(); wraca do początku programu i losuje  mi kolejna liczbę, co znacznie utrudnia jej trafienie. Jak powrócić do tego etapu już po losowaniu liczby ?

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
    int liczba, a;
    srand( time( NULL ) );
    liczba = rand() % 999 + 1;
    do {
        int n = 0;
        std::cin >> a;
        if( a > liczba ) { std::cout << "Podana liczba jest za duza" << std::endl;
            n++; }
        if( a < liczba ) { std::cout << "Podana liczba jest za mala" << std::endl;
            n++; }
        if( a == liczba ) { std::cout << "Brawo trafiles. Zajelo ci to " << n << "prob.";
        }
    }
    while( a != liczba );
   
    return 0;
}
P-30135
szyx_yankez
» 2011-04-01 20:07:30
Musisz zastosować pętle.
Więcej info: lekcja wcześniej(click).
P-30136
Hankete
Temat założony przez niniejszego użytkownika
» 2011-04-01 20:24:28
Dziękuje bardzo za pomoc. Że też sam na to nie wpadłem. Zostało mi tylko do zrobienia ten licznik prób. Bo zwiększanie n o jeden nie wiem czemu, ale nie działa. Kod zaktualizowałem w pierwszym poście.
Edit: Nie ważne. Poradziłem już sobie.
P-30138
Elano92
» 2011-04-01 21:00:54
i własnie wg... mnie już dawno powinna być lekcja fora... Ja to zrobiłem w 3 min , a tak to bym się męczył , mój sposób.


C/C++
#include <iostream>
#include <conio.h>
#include <cstdio>
using namespace std;

int main()

{
   
   
    int a;
    double liczba;
   
    do
    {
        cout << "Podaj liczbe ";
        cin >> liczba;
        bool spr = cin.good();
       
        if( spr == false )
        do
        {
            cout << "Prosilem o podanie liczby : ";
            cin.clear();
            cin.sync();
            cin >> liczba;
            spr = cin.good();
        } while( !spr );
       
        if( spr == true )
       
             srand( time( NULL ) );
       
        a = rand() % 10 + 1;
        cout << "wylosowana " << a << endl;
       
       
    }
    while( a != liczba );
   
    cout << "brawo trafiles liczbe!!!" << endl;
   
   
    getch();
    return 0;
}



P-30144
Daghelor
» 2011-04-01 21:17:47
Dołączam się do tematu , żeby nie zakładać nowego... sprawdźcie moją grę.
C/C++
#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()

{
    int a;
    double liczba;
    int n;
    bool spr = cin.good();
    srand( time( NULL ) );
    a = rand() % 9 + 1;
    do {
        cout << "Sprobuj odgadnac liczbe\n Twoja liczba to:";
        cin >> liczba;
        cin.sync();
        cin.clear();
        if( spr == false )
        { cout << "Prosilem o podanie liczby\n Sprobuj ponownie :";
            cin >> liczba;
            cin.sync();
            cin.clear();
        }
        if( spr == true )
        {
            if( liczba > a )
            {
                cout << "Twoja liczba jest za duza" << endl;
                n++;
            }
            if( liczba < a )
            {
                cout << "Twoja liczba jest za mala" << endl;
                n++;
            }
           
            if( liczba == a )
            {
                cout << "Brawo udalo ci sie odgadnac liczbe" << endl;
                cout << "Zajelo ci to";
                cout << n;
                cout << "prob." << endl;
               
            }
        }
    } while( liczba != a );
   
    system( "pause" );
    return 0;
   
}

Czemu moje próby są dziwnie zliczane? Może, mają być wpisane dopiero w pętli?
P-30146
malan
» 2011-04-01 21:32:09
@Daghelor: Na forum panuje zasada - "jeden problem = jeden temat". Nie ma czegoś takiego jak "dołączenie" się do tematu ;). Załóż własny temat jeżeli chcesz uzyskać odpowiedź na swoje pytania ;)
P-30147
« 1 »
  Strona 1 z 1