Cześć wszystkim ;) nie byłem pewien czy wrzucić to tutaj czy do C++, ale tak właściwie to duuużo bliżej mi do newbie niż do programisty, więc piszę tu.
Mój problem dotyczy programu, który wczytuje 3 liczby do tablicy a później losuje dwie z nich bez powtórzeń.
Wygląda to tak:
#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;
}
Wszystko działa - poza funkcją Sprawdz:
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;
}
, która albo nie działa w ogóle albo zawiesza program po wylosowaniu pierwszej liczby. Po jej zakomentowaniu program działa prawidłowo.
Dzięki za pomoc ;)