[C++] Problem z programem losującym liczby
Ostatnio zmodyfikowano 2011-07-14 16:41
asia97 Temat założony przez niniejszego użytkownika |
[C++] Problem z programem losującym liczby » 2011-07-14 14:35:54 Witam serdecznie :) napisałam program który miał wczytać trzy liczby podane przez użytkownika do tablicy, a później z tych liczb miał wylosować dwie ( zad1, rozdział 21) #include <iostream> #include <cstdlib> #include <ctime>
bool czyBylaWylosowana( int iLiczba, int tab[], int ile ) { if( ile <= 0 ) return false; for( int i = 0; i < ile; i++ ) if( tab[ i ] == iLiczba ) return true; return false; }
void wczytajLiczby( int tab[], int ile ) { int i = 0; do { std::cin >> tab[ i ]; i++; } while( i < ile ); }
int wylosuj( int tab[] ) { int a = rand() % 2; int b = tab[ a ]; return b; }
void wypiszLiczby( int tab1[], int tab2[] ) { std::cout << "Wypisane licby: " << tab1[ 0 ] << ", " << tab1[ 1 ] << ", " << tab2[ 2 ] << std::endl; std::cout << "Wylosowane liczby: " << tab2[ 0 ] << ", " << tab2[ 1 ] << std::endl; }
int main() { srand( time( NULL ) ); int wypisane[ 3 ]; int wylosowane[ 2 ]; wczytajLiczby( wypisane, 3 ); int wylosowanych = 0; do { int liczba = wylosuj( wylosowane ); if( czyBylaWylosowana( liczba, wylosowane, wylosowanych ) == false ) { wylosowane[ wylosowanych ] = liczba; wylosowanych++; } } while( wylosowanych < 2 ); wypiszLiczby( wypisane, wylosowane ); return 0; }
Program wypisuje pierwszą i trzecią liczbę, a trzecia jest zawsze taka sama jak pierwsza. Z losowaniem też jest coś nie tak, ponieważ program losuje duże liczby. Co jest źle ? :) |
|
DejaVu |
» 2011-07-14 16:20:01 #include <iostream> #include <cstdlib> #include <ctime>
bool czyBylaWylosowana( int iLiczba, int tab[], int ile ) { if( ile <= 0 ) return false; for( int i = 0; i < ile; i++ ) if( tab[ i ] == iLiczba ) return true; return false; }
void wczytajLiczby( int tab[], int ile ) { int i = 0; do { std::cin >> tab[ i ]; i++; } while( i < ile ); }
int wylosuj( int tab[] ) { int a = rand() % 3; int b = tab[ a ]; return b; }
void wypiszLiczby( int tab1[], int tab2[] ) { std::cout << "Wypisane licby: " << tab1[ 0 ] << ", " << tab1[ 1 ] << ", " << tab1[ 2 ] << std::endl; std::cout << "Wylosowane liczby: " << tab2[ 0 ] << ", " << tab2[ 1 ] << std::endl; }
int main() { srand( time( NULL ) ); int wypisane[ 3 ]; int wylosowane[ 2 ]; wczytajLiczby( wypisane, 3 ); int wylosowanych = 0; do { int liczba = wylosuj( wypisane ); if( czyBylaWylosowana( liczba, wylosowane, wylosowanych ) == false ) { wylosowane[ wylosowanych ] = liczba; wylosowanych++; } } while( wylosowanych < 2 ); wypiszLiczby( wypisane, wylosowane ); return 0; } |
|
asia97 Temat założony przez niniejszego użytkownika |
» 2011-07-14 16:41:25 Dziękuję panu bardzo za pomoc :) |
|
« 1 » |