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

(Lekcja 21) losowanie bez powtórzeń - czasem losuje, czasem się zawiesza

Ostatnio zmodyfikowano 2014-09-16 15:49
Autor Wiadomość
4mnysi4
Temat założony przez niniejszego użytkownika
(Lekcja 21) losowanie bez powtórzeń - czasem losuje, czasem się zawiesza
» 2014-09-16 15:49:10
Witam na forum ;)

Napisałem już ten program kilka razy, jednak w każdym przypadku jest tak samo - program raz działa poprawnie losując liczby bez powtórzeń, innym razem losuje dwie takie same liczby, jeszcze kiedy indziej - wiesza się po wylosowaniu np. jednej liczby.

Oto kod:

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

int Losuj( int tab[] );

bool Sprawdz( int tab[], int pula, int liczba );

/***********************************/

int Losuj( int tab[] )
{
   
   
    int i =( rand() % 3 );
    int liczba = tab[ i ];
    return liczba;
   
   
   
}

/***********************************/

bool Sprawdz( int tab[], int pula, int liczba )
{
    if( pula < 0 )
         return false;
   
    int i = 0;
    do
    {
        if( tab[ i ] == liczba )
        {
            return true;
            i++;
        }
    } while( i < pula );
   
    return false;
}

/***********************************/

int main()
{
    srand( time( NULL ) );
    int losy[ 3 ];
    int i = 0;
    do
    {
        cout << "Podaj liczbe: ";
        cin >> losy[ i ];
        i++;
    } while( i < 3 );
   
    i = 0;
    int proba = 0;
    int Los;
   
    do
    {
        if( Sprawdz( losy, i, Los ) == false )
        {
            Los = Losuj( losy );
           
            cout << Los << endl;
            proba++
            ;
        }
       
    } while( proba < 2 );
   
    return 0;
   
}

Z góry dzięki za pomoc ;)
P-117070
« 1 »
  Strona 1 z 1