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

2.21 Problem z losowaniem bez powtórzeń.

Ostatnio zmodyfikowano 2018-04-11 16:15
Autor Wiadomość
bulidomex321
Temat założony przez niniejszego użytkownika
2.21 Problem z losowaniem bez powtórzeń.
» 2018-04-11 14:42:17
Program ma nam wylosować 5 liczb bez powtórzeń. Liczby wylosowane mają być z przedziału od 1 do 10. Nie wiem dlaczego program czasami dobrze działa, czasami wypisuje zera w tablicy. Np czasem wyolsuje 6 2 3 4 5 , czasem 2 3 0 0 0. Nie rozumiem dlaczego :P
 
C/C++
bool sprawdzenie( int liczba, int * tablica )
{
   
    if( tablica[ 0 ] == liczba || tablica[ 1 ] == liczba || tablica[ 2 ] == liczba || tablica[ 3 ] == liczba || tablica[ 4 ] == liczba )
    {
        return false;
    }
    else
    {
        return true;
    }
}
int main()
{
    srand( time( 0 ) );
    cout << "Program przystapi do losowania liczb" << endl;
    int tablica[ 5 ];
    int los = 0;
    int licznik = 0;
    for( unsigned i = 0; i < 5; i++ )
    {
        tablica[ i ] = 0;
    }
    do
    {
        int liczba = rand() %( 10 - 1 + 1 ) + 1;
        do
        {
            if( sprawdzenie( liczba, tablica ) == true )
            {
                tablica[ los ] = liczba;
                licznik++;
            }
        }
        while( tablica[ licznik ] = 0 );
       
        los++;
    }
    while( los <= 5 );
   
    for( unsigned i = 0; i < 5; i++ )
    {
        cout << tablica[ i ] << "  ";
    }
    return 0;
}
P-170617
pekfos
» 2018-04-11 16:15:44
» Kurs C++ / FAQNajczęściej spotykane bugi pytanie/odpowiedź
P-170620
« 1 »
  Strona 1 z 1