[Lekcja 21] Losowanie bez powtórzeń
Ostatnio zmodyfikowano 2013-05-09 15:08
Astaroth Temat założony przez niniejszego użytkownika |
[Lekcja 21] Losowanie bez powtórzeń » 2013-05-09 08:09:51 To ma być mechanizm do losowania bez powtórzeń liczb od 1 do 10 w kursie jest podany sposób, ale chciałem to zrobić samodzielnie. Program robi dwa błędy po pierwsze wpisuje na tablice każdą liczbę, po drugie liczby wypisywane są inne niż wpisane. Dlaczego tak się dzieje ? #include <iostream> #include <ctime> #include <cstdlib> void losowanie( int tab[], int index ) { srand( time( NULL ) ); index = 0; int los; bool sprawdzenie = los != tab[ index ]; do { los =( rand() % 10 ) + 1; std::cout << "Wylosowana : " << los << std::endl; if( sprawdzenie ) { std::cout << "Wpisana : " << los << std::endl; los = tab[ index ]; index++; } else; } while( index < 6 ); }
void wypis( int tab[], int index ) { index = 0; do { std::cout << "Numer : " << index << " Liczba :" << tab[ index ] << std::endl; index++; } while( index < 6 ); }
int main() { int tablica[ 5 ]; losowanie( tablica, 5 ); wypis( tablica, 5 ); }
|
|
kubawal |
» 2013-05-09 15:05:42 |
|
kubawal |
» 2013-05-09 15:08:32 Nie inicjujesz zmiennej int los; Jeśli chcesz by była losowa to: int los = rand(); |
|
« 1 » |