(Lekcja 21) losowanie bez powtórzeń - czasem losuje, czasem się zawiesza
Ostatnio zmodyfikowano 2014-09-16 15:49
4mnysi4 Temat założony przez niniejszego użytkownika |
(Lekcja 21) losowanie bez powtórzeń - czasem losuje, czasem się zawiesza » 2014-09-16 15:49:10 Witam na forum ;) Napisałem już ten program kilka razy, jednak w każdym przypadku jest tak samo - program raz działa poprawnie losując liczby bez powtórzeń, innym razem losuje dwie takie same liczby, jeszcze kiedy indziej - wiesza się po wylosowaniu np. jednej liczby. Oto kod: #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int Losuj( int tab[] );
bool Sprawdz( int tab[], int pula, int liczba );
int Losuj( int tab[] ) { int i =( rand() % 3 ); int liczba = tab[ i ]; return liczba; }
bool Sprawdz( int tab[], int pula, int liczba ) { if( pula < 0 ) return false; int i = 0; do { if( tab[ i ] == liczba ) { return true; i++; } } while( i < pula ); return false; }
int main() { srand( time( NULL ) ); int losy[ 3 ]; int i = 0; do { cout << "Podaj liczbe: "; cin >> losy[ i ]; i++; } while( i < 3 ); i = 0; int proba = 0; int Los; do { if( Sprawdz( losy, i, Los ) == false ) { Los = Losuj( losy ); cout << Los << endl; proba++ ; } } while( proba < 2 ); return 0; }
Z góry dzięki za pomoc ;) |
|
« 1 » |