Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rozdział 21 jak uniknąć powtórzeń?

Ostatnio zmodyfikowano 2022-06-19 03:11
Autor Wiadomość
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.  
P-179555
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.
P-179556
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.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int wylosujliczbe( int tablica[ 5 ] )
{
   
int WylosowanaLiczba =(( rand() % 10 ) + 1 );
   
return WylosowanaLiczba;
   
//Działa
}

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 ); //Zwraca Losowa liczbe
       
cout << ZwiekszLiczbeTablicy << ", ";
       
ZwiekszLiczbeTablicy = SprwadzCzyLiczbaJestWTabeli( tablica, WylosowanaLiczba, ZwiekszLiczbeTablicy ); //Zwraca ZwiekszLiczbeTablicy
   
} while( ZwiekszLiczbeTablicy < 5 );
   
   
ZwiekszLiczbeTablicy = 0;
   
do
   
{
       
cout << tablica[ ZwiekszLiczbeTablicy ] << endl;
       
ZwiekszLiczbeTablicy++;
   
} while( ZwiekszLiczbeTablicy < 5 );
   
}
P-179558
« 1 »
  Strona 1 z 1