我正在用rand()函數在C中做一個簡單的例子,但函數總是返回相同的數字,儘管我使用的是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
謝謝,它的工作原理! –