int trafnum1 = 0;
int ile;
cout<<"Ile chcesz postawic? ";
cin>>ile;
cout<<"Wprowadz 1 liczbe: ";
cin>>num1;
cout<<endl;
//Do tego momentu czaje, dalszych linii nie bardzo
srand(time(NULL)); //inicjuj generator liczb losowych, by za każdym uruchomieniem funkcja rand() wyświetl. inną wartość
vector<bool> Randoms(61,false); //deklaruj typ vector (taka tablica), o 61 indeksach i wszystkich wartościach false
for(int i=1; i<21; i++) { //dla i od 1 do 21 (bez tej wartości) wykonuj poniższe polecenia
int j = rand() % (80 - 1) + 1 + 1; //nadaj zmiennej j wartość z przedziału od 2 do 80 (może wystąpić błąd przekroczenia vectora, a przy
//wszystkich iteracjach jest to prawie pewne)
if(Randoms[j]) { //Jeśli Randoms[j] jest true
--i; //to ponów tą iterację
} else { //w przeciwnym wypadku
Randoms[j]=true; //Randoms[j] zmień na true
cout<<j<<" "; //i wyświetl wartość j i spację
}
if(j == num1) //Jeśli wartość j jest równa wprowadzonej liczbie num1
trafnum1++; //to zwiększ trafnum1 o 1
if(i % 5 == 0) //Jeśli i jest podzielne przez pięć
cout<<endl; //to wyświetl przejście do następnej linii
}
P.S. Sorki, że tak późno. Kod ma pewne błędy, ale nie o to pytałeś.
W skrócie: Program pyta użytkownika o pewne liczby, pierwsza nie ma znaczenia, druga to ta która ma być zgadywana przez program. Program podstawia 20 liczb z zakresu 2-80(tu jest prawie pewne że wystąpi błąd w czasie wykonywania) i zapisuje do tablicy wartość true dla danego indeksu i wyświetla tą liczbę. Jeśli jest równa zgadywanej to zwiększa trafnum1 o 1. Program będzie wyświetlać wszystko w 5 kolumnach po 4 wiersze, ale i tak podejrzewam, że po średnio 4 iteracjach się wysypie.