Rozdział 21 jak uniknąć powtórzeń?
Ostatnio zmodyfikowano 2022-06-19 03:11
piratek Temat założony przez niniejszego użytkownika |
Rozdział 21 jak uniknąć powtórzeń? » 2022-06-17 07:04:50 Próbuje samodzielnie zrobić kod z powtórzeniami, ale nie mogę wpaść na pomysł jak sprawdzić, czy wystąpiła ta sama liczba. Mam w głowie 2 pomysły. W pierwszym sprawdzam każdą wartość w tabeli i jeśli się powtórzy, to wtedy zapętlę ją do czasu, aż nie pojawi się liczba, której nie było. Drugim pomysłem jest, żeby wylosować X liczb, do czasu aż nie wylosuje się 5 różnych liczb i je przypisać do tabeli. Słowa klucz, którego mi brakuje, to nie mam pojęcia jak oddzielić liczby zduplikowane, a które. Myślę nad tym drugi dzień, ale nic nie przychodzi mi do głowy. |
|
pekfos |
» 2022-06-17 10:21:12 sprawdzam każdą wartość w tabeli i jeśli się powtórzy, to wtedy zapętlę ją do czasu, aż nie pojawi się liczba, której nie było. No to tak zrób. Nie rozumiem w czym masz problem. |
|
piratek Temat założony przez niniejszego użytkownika |
» 2022-06-19 03:11:18 No to tak zrób. Nie rozumiem w czym masz problem.
Problem polegał na tym, że nie potrafiłem przelać moich myśli na kod. Ostatecznie mi się udało zrobić przykład, ale muszę przyznać, że mój kod wygląda znacznie chaotyczniej. #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int wylosujliczbe( int tablica[ 5 ] ) { int WylosowanaLiczba =(( rand() % 10 ) + 1 ); return WylosowanaLiczba; }
int SprwadzCzyLiczbaJestWTabeli( int tablica[ 5 ], int Wylosowanaliczba, int ZwiekszLiczbeTablicy ) { int licznik = 0; do { if( tablica[ licznik ] == Wylosowanaliczba ) { cout << "Taka sama liczba wystepuje w tabeli, sprobouj ponownie" << endl; return ZwiekszLiczbeTablicy; } licznik++; } while( licznik < 5 ); cout << "Petla nie znalazla wylosowanej liczby, gratulacje" << endl; tablica[ ZwiekszLiczbeTablicy ] = Wylosowanaliczba; return ++ZwiekszLiczbeTablicy; }
int main() { srand( time( NULL ) ); int tablica[ 5 ]; int ZwiekszLiczbeTablicy = 0; do { int WylosowanaLiczba = wylosujliczbe( tablica ); cout << ZwiekszLiczbeTablicy << ", "; ZwiekszLiczbeTablicy = SprwadzCzyLiczbaJestWTabeli( tablica, WylosowanaLiczba, ZwiekszLiczbeTablicy ); } while( ZwiekszLiczbeTablicy < 5 ); ZwiekszLiczbeTablicy = 0; do { cout << tablica[ ZwiekszLiczbeTablicy ] << endl; ZwiekszLiczbeTablicy++; } while( ZwiekszLiczbeTablicy < 5 ); }
|
|
« 1 » |