Mój program zawiera kod, który powinien generować losową liczbę całkowitą dodatnią za każdym razem, gdy ją uruchomię. Generuje losowe liczby, ale tylko raz. Potem, kiedy wykonuję ten sam kod, daje on te same wartości i czyni mój kod bezużytecznym.Jak korzystać z funkcji srand() z time.h?
Zacząłem rand funkcji, a następnie użyłem srand() funkcji z pliku nagłówka time.h, ale nadal nie działa prawidłowo.
#define size 10
for(i=0;i<size;i++)
Arr[i] = rand()%size;
pierwsze wezwanie (losowo):
6 0 2 0 6 7 5 5 8 6
drugie wezwanie (losową ale taki sam jak poprzedni):
6 0 2 0 6 7 5 5 8 6
Później odwiedził pytania przepełnienie stosu i czytałem o funkcja srand(), a ja użyłem jej jako:
#include<time.h>
for(i=0;i<size;i++)
Arr[i] = srand(time(NULL));
pierwsze wezwanie:
-10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327
drugie wezwanie:
-10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326
To daje mi różne (ale nie wartości losowe). Zdefiniowałem Arr [i] jako unsigned int i nadal otrzymuję wartości ujemne.
tak ustawić swoje nasienie? Ustaw swój materiał siewny za pomocą funkcji czasu. – Magn3s1um
Wystarczy raz wywołać 'srand', aby zasiać generator' rand'. Nie dzwoń 'srand' za każdym razem, aby uzyskać swoje numery – TJD
Prawdopodobnie powinieneś przeczytać stronę [mansage] (http://linux.die.net/man/3/rand), która wyjaśnia działanie tych funkcji i zapewnia przykład pracy. – Aya