Моя программа содержит код, который должен генерировать случайное положительное целое число каждый раз, когда я его выполняю. Он генерирует случайные числа, но только один раз. После этого, когда я выполняю тот же код, он дает мне те же значения, что делает мой код бесполезным.
Я начал с функции rand, а затем использовал функцию srand() с заголовочным файлом time.h, но все же это не так. работает должным образом.
#define size 10
for(i=0;i<size;i++)
Arr[i] = rand()%size;
Первый звонок (случайный):
6 0 2 0 6 7 5 5 8 6
Второй вызов (случайный, но такой же, как и предыдущий):
6 0 2 0 6 7 5 5 8 6
Позже я посетил вопросы о переполнении стека и прочитал о функции srand(), и я использовал ее как:
#include<time.h>
for(i=0;i<size;i++)
Arr[i] = srand(time(NULL));
Первый звонок:
-10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327 -10327
Второй звонок:
-10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326 -10326
Это дает мне разные (но не случайные значения). Я определил Arr[i] как unsigned int, но все равно получаю отрицательные значения.
srand
только один раз, чтобы заполнить генераторrand
. Не звонитеsrand
каждый раз, чтобы узнать свои номера. - person TJD   schedule 15.05.2013