21. Losowanie bez powtórzeń - zadanie
Ostatnio zmodyfikowano 2017-11-07 16:20
pekfos |
» 2017-11-05 15:43:36 To teraz zaimplementuj w C++ każdy z tych kroków, po kolei. Masz wylosować 20 liczb, więc pewnie będziesz je zapisywać do tablicy o takim rozmiarze i w tej tablicy będziesz sprawdzać, czy liczba była już wcześniej wylosowana. |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-05 15:45:08 Czyli utworzyć jeszcze jedną tablice, tak? |
|
pekfos |
» 2017-11-05 16:03:29 Gdzieś wyniki musisz zapisać. |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-06 20:32:58 Napisałem coś takiego, ale niestety losuje z powtórzeniami ;/ Mógłby ktoś wskazać błąd? Dzięki z góry :) #include <conio.h> #include <ctime> #include <cstdlib> #include <iostream> using namespace std;
void wpisz( int tablica[] ) { int i = 0; do { cout << "Podaj " << i + 1 << " liczbe: "; cin >> tablica[ i ]; i++; } while( i < 10 ); }
bool sprawdzenie( int tablica[], int a, int licznik ) { if( licznik <= 0 ) return true; int i = 0; do { if( tablica[ i ] == tablica[ a ] ) return false; i++; } while( i < licznik ); return true; }
int main() { srand( time( NULL ) ); int tablica[ 10 ]; int a; int licznik = 0; int nowa_tablica[ 8 ]; wpisz( tablica ); cout << endl << "Teraz wylosuje 8 sposrod liczb ktore podales!" << endl; do { a = rand() % 10; if( sprawdzenie( tablica, a, licznik ) == true ) { nowa_tablica[ licznik ] = tablica[ a ]; licznik++; } } while( licznik < 8 ); int i = 0; cout << "Wylosowane liczby to: "; do { cout << nowa_tablica[ i ] << ", "; i++; } while( i < 8 ); _getch(); return 0; }
|
|
Luq |
» 2017-11-06 22:54:28 if( sprawdzenie( tablica, a, licznik ) == true )
|
Sprawdzasz nie tą tablicę co trzeba. |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-07 15:49:16 wrzuciłem do sprawdzania obie tablice i nadal losuje z powtórzeniami :/ |
|
YooSy |
» 2017-11-07 16:01:22 Do funkcji masz przekazać nową tablicę, aktualny rozmiar nowej tablicy oraz wylosowaną liczbę, a teraz przekazujesz (nawet po zmianie) nowa tablicę, wylosowany indeks (po co?) oraz aktualny licznik rozmiaru. |
|
sair Temat założony przez niniejszego użytkownika |
» 2017-11-07 16:01:22 Znalazłem bład! :) if( licznik = 0 ) a powinno być if( licznik == 0 ) swoją drogą to można tak wartości przypisywać do zmiennych wewnątrz if'a? :O |
|
1 « 2 » 3 |