c++ problem ze zrozumieniem 2 linii

0

Witam! mam pare pytań do poniższego fragmentu programu:

   int trafnum1 = 0;
    int ile;
    cout<<"Ile chcesz postawic? ";
    cin>>ile;
    cout<<"Wprowadz 1 liczbe: ";
    cin>>num1;
    cout<<endl;
    srand(time(NULL));
    vector<bool> Randoms(61,false);
    for(int i=1; i<21; i++) {
    int j = rand() % (80 - 1) + 1 + 1; **//jak zmienić, żeby losowało od 1 do 80?**
    if(Randoms[j]) {    ** // jakie jest zastosowanie tej linii? prosiłbym o jakiś zrozumiały PRZYKŁAD  **
            --i;
    } else {
        Randoms[j]=true;
        cout<<j<<" ";

        }

    if(j == num1)
    trafnum1++;

    if(i % 5 == 0)
     cout<<endl;
    }

ZA POMOC BARDZO SERDECZNIE DZIĘKUJĘ!

0

Ech.... ale zdesperowany jestes ;p Codziennie to samo ;p
Co do pierwszej linii, o ktora pytasz - poczytaj, jak dziala funkcja rand() oraz jak dziala operacja modulo ( % ). I wtedy sam wykminisz ;) Ewentualnie poszukaj na forum albo w Google :>
Co do drugiej linii - a w zasadzie do calego for'a:
20 razy rób: {
wylosuj liczbe
sprawdz, czy byla ona juz wylosowana{
jesli tak, to zmniejsz iterator - czyli petla for wykona sie o jeden raz wiecej - widac, chodzi nam o to, zeby losowac unikalne liczby :>
w przeciwnym wypadku:{
zaznacz, ze zostala wylosowana
wypisz te liczbe
}
}
sprawdz, czy liczba zostala "trafiona", jesli tak, to zwieksz licznik trafien
co piata liczbe wypisz znak nowej linii - bedziemy mieli po piec liczb w linii wypisanych
}
KONIEC.

0
srand(time(NULL));
int j = rand()% 80 + 1;
true = 1;
false = 0;

if(>=1) == if(true)
if(0) == if(false)
Stąd, jeśli Randoms[j] >= 1 wtedy warunek jest spełniony.
Jeśli Radnoms[j] == 0 wtedy false;
0

Nie koniecznie >= 1. Watość -1 też zwróci wartość logiczną true.
Dlatego:
true != 0;
false == 0;

1 użytkowników online, w tym zalogowanych: 0, gości: 1