Я делаю простой пример в C с rand(), но функция всегда возвращает такое же число, несмотря на то, что я использую srand().rand() возвращает то же число
Это код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generate(int min, int max)
{
srand(time(NULL));
return rand() % (max - min + 1) + min;
}
int main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("Number random %d = %d\n", i, generate(1, 100));
}
return 0;
}
Исполнение:
Число случайных 0 = 40 Число случайных 1 = 40 Число случайных 2 = 40 Число случайная 3 = 40 Число случайных 4 = 40 Число случайных 5 = 40 Число случайных 6 = 40 Число случайных 7 = 40 Число случайных 8 = 40 Число случайных 9 = 40
Вы не должны принуждать новые семена каждого использования. Вы должны использовать '' srand'' при запуске приложения, а не каждый раз. Кстати, вы действительно должны использовать '' '' вместо старой школы '' rand''. –
попробуйте запустить случайные числа один раз в начале вашей основной функции. – flotto
Спасибо, это работает! –