Losowanie bez powtórzeń zadanie 2
Ostatnio zmodyfikowano 2014-08-29 23:48
mlOOdy Temat założony przez niniejszego użytkownika |
Losowanie bez powtórzeń zadanie 2 » 2014-08-29 19:38:13 Cześć, może mi ktoś powiedzieć co w tym programie jest źle ? bo źle działa :/ #include <iostream> #include <cstdlib> #include <ctime> int losujemy( int tablica[] ) { int liczba; liczba =( rand() % 10 ) + 1; switch( liczba ) { case 1: return tablica[ 0 ]; case 2: return tablica[ 1 ]; case 3: return tablica[ 2 ]; case 4: return tablica[ 3 ]; case 5: return tablica[ 4 ]; case 6: return tablica[ 5 ]; case 7: return tablica[ 6 ]; case 8: return tablica[ 7 ]; case 9: return tablica[ 8 ]; case 10: return tablica[ 9 ]; } } bool sprawdzanie_poprawnosci( int tablica_wyjsciowa[], int nr_liczby_tablicy_wyjsciowej, int wylosowana_liczba ) { if( nr_liczby_tablicy_wyjsciowej == 0 ) return true; int i = 0; do { if( tablica_wyjsciowa[ i ] == wylosowana_liczba ) return false; i++; } while( i < nr_liczby_tablicy_wyjsciowej ); return true; }
int main() { srand( time( NULL ) ); int tablica_do_wprowadzania[ 10 ]; int nr_liczby_tablicy_do_wprowadzania = 0; int wylosowana_liczba; int tablica_wyjsciowa[ 8 ]; int nr_liczby_tablicy_wyjsciowej = 0; std::cout << "Podaj 10 liczb z ktorych 8 bedzie wylosowanych bez powtorzen: " << std::endl; do { std::cin >> tablica_do_wprowadzania[ nr_liczby_tablicy_do_wprowadzania ]; nr_liczby_tablicy_do_wprowadzania++; } while( nr_liczby_tablicy_do_wprowadzania < 10 ); do { wylosowana_liczba = losujemy( tablica_do_wprowadzania ); if( sprawdzanie_poprawnosci( tablica_wyjsciowa, nr_liczby_tablicy_wyjsciowej, wylosowana_liczba ) == true ) { wylosowana_liczba = tablica_wyjsciowa[ nr_liczby_tablicy_wyjsciowej ]; nr_liczby_tablicy_wyjsciowej++; } } while( nr_liczby_tablicy_wyjsciowej < 8 ); nr_liczby_tablicy_wyjsciowej = 0; std::cout << "8 wylosowanych liczb z Twoich 10 to: " << std::endl; do { std::cout << tablica_wyjsciowa[ nr_liczby_tablicy_wyjsciowej ] << std::endl; nr_liczby_tablicy_wyjsciowej++; } while( nr_liczby_tablicy_wyjsciowej < 8 ); } |
|
Jacob99 |
» 2014-08-29 19:40:03 A konkretniej to co źle robi? Bo jeśli wypisuje wszystkie liczby po kolei, to wstaw po każdym case break; case 1: return tablica[ 1 ]; break;
itd. |
|
mlOOdy Temat założony przez niniejszego użytkownika |
» 2014-08-29 20:27:51 nie wiadomo skąd wypisuje 8 bardzo dużych i małych liczby których nie podawałem z tym breakiem nie działa dalej :/ |
|
1aam2am1 |
» 2014-08-29 21:26:38 tablica_wyjsciowa[ nr_liczby_tablicy_wyjsciowej ] = wylosowana_liczba;
? Nie ta kolejność u ciebie |
|
Monika90 |
» 2014-08-29 21:36:11 z tym breakiem nie działa dalej :/ |
break po return nie ma wpływu na działanie programu |
|
mlOOdy Temat założony przez niniejszego użytkownika |
» 2014-08-29 23:48:57 Dzięki 1aam2am1 to było to :D teraz działa. |
|
« 1 » |