Czy srand(time(NULL)) musi zostać użyty w funkcji main aby działał prawidłowo?
Ostatnio zmodyfikowano 2024-04-21 21:01
piratek Temat założony przez niniejszego użytkownika |
Czy srand(time(NULL)) musi zostać użyty w funkcji main aby działał prawidłowo? » 2024-04-19 04:51:57 Jestem na lekcji z funkcjami, a dokładniej na zadaniu: "Napisz funkcję, która losuje liczbę z przedziału od 50 do 60 włącznie. Wywołaj funkcję kilka razy (wypisz wylosowane wartości na ekran) w celu przetestowania czy działa ona poprawnie." Przetestowałem użycie srand( time( NULL ) ) w mojej nowej funkcji, jednak program nie działał prawidłowo, a liczba za każdym razem wylosowała się ta sama. Zastanawiam się, czy jedynym wyjściem z tej sytuacji jest użycie srand( time( NULL ) ) na samym początku funkcji main. To nie jest zmienna więc nie będę za to palony na stosie, zgadza się? Mój kod: #include <iostream> using namespace std;
void losowanieliczby() { int losowaliczba =( rand() % 11 ) + 50; cout << losowaliczba << endl; }
int main() { srand( time( NULL ) ); int ile = 50; do { losowanieliczby(); ile--; } while( ile != 0 ); return 0; }
|
|
DejaVu |
» 2024-04-19 08:31:55 |
|
pekfos |
» 2024-04-19 21:12:27 Nie musi być na samym początku, wystarczy że będzie raz, przed pierwszym użyciem rand(). srand() inicjalizuje generator pseudolosowy i ciąg losowych liczb jaki uzyskasz zależy tylko od argumentu do srand(). A podajesz tam wynik time(), aktualny czas z dokładnością do jednej sekundy. |
|
piratek Temat założony przez niniejszego użytkownika |
» 2024-04-21 21:01:54 Dziękuję za pomoc. 🫡 |
|
« 1 » |