Losowanie bez powtórzeń
Ostatnio zmodyfikowano 2014-08-07 22:58
mrscresh Temat założony przez niniejszego użytkownika |
Losowanie bez powtórzeń » 2014-08-07 12:07:01 Witam, Przerabiając kurs natknąłem się na temat Losowanie bez powtórzeń. Oczywiście przed przeczytaniem podanego sposobu na stworzenie takiego losowania chciałem sam trochę pokombinować. Niestety przy wywoływaniu funkcji w warunku if wywala mi błąd. Gdzie zawiniłem? ;) //Edit: Kod poniżej został już poprawiony ;) #include <iostream> #include <cstdlib> #include <ctime>
bool niebylo( int tabela[], int licz ) { if( licz > 0 ) { int licz2 = licz; do { licz2--; if( tabela[ licz ] == tabela[ licz2 ] ) return false; } while( licz2 > 0 ); return true; } else return true; }
int main() { srand( time( NULL ) ); int los[ 5 ]; int licznik = 0; do { los[ licznik ] =( std::rand() % 10 ) + 1; if( niebylo( los, licznik ) == true ) { licznik++; } } while( licznik < 5 ); licznik = 0; std::cout << "wylosowane liczby to:" << std::endl; do { std::cout << los[ licznik ] << std::endl; licznik++; } while( licznik < 5 ); }
|
|
Jacob99 |
» 2014-08-07 12:08:30 No i w związku z tym co? |
|
1234Marcineq |
» 2014-08-07 12:18:24 zle wywołujesz funkcję niebylo.
powinno byc :
if(niebylo(los,licznik)==true) // bez nawiasów kwadratowych { .... } |
|
mrscresh Temat założony przez niniejszego użytkownika |
» 2014-08-07 12:26:11 Zastosowałem to co powiedziałeś 1234Marcineq, skompilowało się ale nie działa tak jak trzeba - w konsoli nic się nie dzije. |
|
1234Marcineq |
» 2014-08-07 12:38:35 bo są inne błędy.
|
|
mrscresh Temat założony przez niniejszego użytkownika |
» 2014-08-07 18:03:57 Może mi zatem ktoś powiedzieć gdzie tkwi błąd?
|
|
Mateus. |
» 2014-08-07 20:12:10 if( tabela[ licz ] == tabela[ licz2 ] );
return false; Co ten if robi, skoro zaraz za nim stoi ; ? |
|
michal11 |
» 2014-08-07 20:16:25 Ja bym na twoim miejscu zmienił te wszystkie do while na fory i ten kod jest na tyle prosty, że możesz go zdebugować i sam znajdziesz błędy. |
|
« 1 » 2 |