Generator liczb losowych

0

Napisałem taki mały program do zgadywania liczb losowych generowanych przez rand(). Program działa, ale przy wywołaniu srand(time (NULL)); dostaję ostrzeżenie o utracie precyzji Implicit conversion loses integer precision 'time_t aka long to unsigned int)'.

Program napisałem Xcode. Tak ma być, czy gdzieś popełniłem błąd?

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    srand(time (NULL));
    cout << "Program losuje liczbe od 0 do 9.\nZgadnij ją!"<< endl;

    int liczbaLosowa = (rand() % 10);

    cout << "Podaj twoja liczbę! ";
    int podanaLiczba = 0;
    cin >> podanaLiczba;

    if (podanaLiczba == liczbaLosowa)
        cout << "Zgadłeś! Wygrywasz! Wylosowano " << liczbaLosowa << endl;
    else
        cout << "Niestety, przegrałeś! Wylosowano " << liczbaLosowa << endl;
}
1

Jeśli chcesz się pozbyć warninga rzutuj na typ docelowy, aby kompilator wiedział, że akceptujesz ewentualne konsekwencje.

Ale tak poza tym, używaj <random> zamiast rand(). https://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful

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