Program łapie zawiechę na pętli:
int ile = 0;
for(it = wylosowane_liczby.begin(); it != wylosowane_liczby.end(); it++)
{
++ile;
*it = rand()%49+1;
if(ile > 1)
{
while(true)
{
for(int u = 1, w = 1; u <= ile; u++)
{
if(ile > 1 && *it == wylosowane_liczby[u - w])
{
*it = rand()%49+1;
u = 1;
}
pomocnicza = u;
}
if(pomocnicza == ile)
break;
}
}
}
Cały kod funkcji: http://pastebin.com/BfAaMW3n
Moment zamulenia: http://zapodaj.net/21c4d5e00d609.png.html
Staje na tym napisie i nie rusza dalej.
Tak się zastanawiam i wydaje mi się, że błąd jest gdzieś tutaj:
*it == wylosowane_liczby[u - w])
np. jak wylosuje drugą liczbę i będzie porównywało z drugim elementem tablicy, a jego jeszcze nie ma, bo 'u' będzie 2, a w = 1, czyli u - w = 1, a ja właśnie do jedynki chcę wpisać wylosowaną liczbę.