C語言--使用rand函數(shù)產(chǎn)生隨機(jī)數(shù)
2021-11-23 22:11 作者:風(fēng)菩提樹 | 我要投稿
1、rand():
會(huì)返回一個(gè)范圍在0到RAND_MAX(至少是32767)之間的偽隨機(jī)數(shù)。
頭文件: ? 原型:int rand(void);
產(chǎn)生1到50之間的隨機(jī)值:
int a = rand()%50 + 1;//rand()%50 會(huì)產(chǎn)生0到49之間的數(shù)
注意:單獨(dú)使用rand()函數(shù),在執(zhí)行一次后,再執(zhí)行,兩次執(zhí)行所產(chǎn)生的隨機(jī)值會(huì)是一樣的。這是因?yàn)閞and()調(diào)用之前,沒有設(shè)置隨機(jī)數(shù)種子,系統(tǒng)會(huì)自動(dòng)設(shè)置隨機(jī)數(shù)種子為1,隨機(jī)數(shù)種子沒變,隨機(jī)數(shù)沒變。因此,rand()與srand()搭配使用。


2、srand()函數(shù):
用來設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時(shí)的隨機(jī)數(shù)種子。
頭文件: ? 函數(shù)原型:void srand(unsigned int seed);
參數(shù)seed通常可以用time(0)來設(shè)置隨機(jī)數(shù)種子;
如:seed(time(0));


3、time()函數(shù):
函數(shù)原型:time_t time(time_t *timer);
參數(shù)timer = NULL時(shí),得到當(dāng)前日歷時(shí)間(從1970-01-01 00:00:00到現(xiàn)在的秒數(shù));time(0)相當(dāng)于time(NULL)。
標(biāo)簽: