[Lekcja 21] Losowanie bez powtórzeń.... potrzebuje pomocy
Ostatnio zmodyfikowano 2013-08-24 14:33
PatraS Temat założony przez niniejszego użytkownika |
[Lekcja 21] Losowanie bez powtórzeń.... potrzebuje pomocy » 2013-08-24 13:37:43 Witam mam problem z wylosowanymi liczbami gdyz program wypisuje mi na ekran dziwne liczby i nie moge doszukac sie błedu kodu. Z góry Dziekuje za pomoc. #include <iostream> #include <cstdlib> #include <ctime>
int wczytaj( int tablica[], int ile ) { do { std::cout << "podaj liczbe: "; std::cin >> tablica[ ile ]; std::cin.clear(); std::cin.sync(); ile++; } while( ile < 3 ); }
bool czydobrze( int iliczba, int tab[], int ile ) { if( ile <= 0 ) return false; int i = 0; do { if( tab[ i ] == iliczba ) return true; i++; } while( i < ile ); return false; }
int losuj() { return( rand() % 3 ); }
int main() { srand( time( 0 ) ); int ile = 0; int tablica[ 3 ]; int tablica2[ 2 ]; wczytaj( tablica, ile ); do { int liczba = losuj(); if( czydobrze( liczba, tablica2, ile ) == false ) tablica2[ ile ] = liczba; ile++; } while( ile < 2 ); ile = 0; do { std::cout << tablica2[ ile ] << std::endl; ile++; } while( ile < 2 ); return 0; }
|
|
PatraS Temat założony przez niniejszego użytkownika |
problem naprawiony » 2013-08-24 14:33:10 juz sam spostrzegłem bledy: -brakowalo nawiasu w funcji if.... -kod wyswietlał mi losowe liczby ,gdyz brakowalo wpisania tablicy jako przedzialu do wyswietlenia. poprawiona czesc kodu : do { int liczba = losuj(); if( czydobrze( liczba, tablica2, ile ) == false ) { tablica2[ ile ] = liczba; ile++; } } while( ile < 8 );
ile = 0;
do { std::cout << tablica[ tablica2[ ile ] ] << std::endl; ile++; } while( ile < 8 );
return 0; }
|
|
« 1 » |