Witam. Otóż zrobilem bool'a który zwraca wartość prawda jeśli liczba nie była jeszcze wylosowana. Wszystko działa pięknie, ale przy pierwszym teście, dwie ostatnie liczby miały tą samą wartość. Próbowałem odtworzyć to zdarzenie, ale więcej się nie powtórzyło. I tu moje pytanie, czy ktoś z bardziej doświadczonych koderów mógłby spojrzeć na ten kod i powiedzieć mi czy gdzieś jest błąd, ja analizowałem ale do niczego nie doszedlem. Nie chcę aby to powtórzyło się potem w aplikacji. Pozdrawiam ;)
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
bool czy_wylosowana(int liczba, int wylosowane[], int wylosowanych)
{
for (int i=0 ; i <= wylosowanych; i++)
{
if(liczba == wylosowane[i]) return false;
}
return true;
}
int main()
{
srand(time(NULL));
int wylosowane[12];
int wylosowanych=0;
int liczba;
while(wylosowanych < 12)
{
liczba = (rand() % 12) +1;
if(czy_wylosowana(liczba,wylosowane,wylosowanych))
{
wylosowane[wylosowanych] = liczba;
wylosowanych ++;
cout << liczba << ", ";
}
}
return 0;
}