Rozdział 16.Praca domowa z funkcji losujących.
Ostatnio zmodyfikowano 2011-04-01 21:32
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 ? #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; }
|
|
szyx_yankez |
» 2011-04-01 20:07:30 Musisz zastosować pętle.
Więcej info: lekcja wcześniej( click).
|
|
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. |
|
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.
#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; }
|
|
Daghelor |
» 2011-04-01 21:17:47 Dołączam się do tematu , żeby nie zakładać nowego... sprawdźcie moją grę. #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? |
|
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 ;) |
|
« 1 » |