1、首先打開Visual
成都創(chuàng)新互聯(lián)公司的客戶來(lái)自各行各業(yè),為了共同目標(biāo),我們?cè)诠ぷ魃厦芮信浜希瑥膭?chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對(duì)我們的要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、電商網(wǎng)站開發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā)。
stdio
2019,依次點(diǎn)擊文件,新建,項(xiàng)目新建以一個(gè)空白的項(xiàng)目:
2、新建新項(xiàng)目以后,右鍵點(diǎn)擊左邊的源文件,選擇添加,點(diǎn)擊添加項(xiàng):
3、選擇cpp,并將下方的擴(kuò)展名改為.c,然后點(diǎn)擊確定:
4、接下來(lái)就可以用編譯器編譯,使用rand()函數(shù)產(chǎn)生C語(yǔ)言的隨機(jī)數(shù),需要加入stdlib.h和time.h在表頭,rand()函數(shù)需要給srand()函數(shù)提供一個(gè)參數(shù),不然系統(tǒng)會(huì)給定一個(gè)默認(rèn)的參數(shù),如果參數(shù)為一任意的常量的話,得到的也是偽隨機(jī)數(shù):
4、按ctrl+F5就可以運(yùn)行程序了,在彈出的窗口中就會(huì)看到得到的所有隨機(jī)數(shù)了:
分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計(jì) 其他編程語(yǔ)言
問(wèn)題描述:
C語(yǔ)言中產(chǎn)生隨機(jī)數(shù)的函數(shù)是什么?(好象有兩個(gè))以及這兩個(gè)函數(shù)的頭文件是什么?
解析:
#include stdio.h
#include stdlib.h
#include time.h
void main()
{
int i;
srand((unsigned)time(NULL));
i = rand() % 100;
}
這樣產(chǎn)生的隨機(jī)數(shù)就是0-99之間的,
這二個(gè)函數(shù)的工作過(guò)程如下:
1) 首先給srand()提供一個(gè)種子,它是一個(gè)unsigned int類型,其取值范圍從0~65535;
2) 然后調(diào)用rand(),它會(huì)根據(jù)提供給srand()的種子值返回一個(gè)隨機(jī)數(shù)(在0到32767之間)
3) 根據(jù)需要多次調(diào)用rand(),從而不間斷地得到新的隨機(jī)數(shù);
4) 無(wú)論什么時(shí)候,都可以給srand()提供一個(gè)新的種子,從而進(jìn)一步“隨機(jī)化”rand()的輸出結(jié)果。
樓上這樣得出的隨機(jī)值不準(zhǔn)確,不信你運(yùn)行幾次試試,都是同一個(gè)數(shù)。正確應(yīng)該這樣。
首先加頭文件
#include time.h
#includestdlib.h
然后
在主函數(shù)里面寫
int i;
srand(time(0));
i=rand()%100+1;
printf("%d",i);
1. 基本函數(shù)
在C語(yǔ)言中取隨機(jī)數(shù)所需要的函數(shù)是:
int rand(void); void srand (unsigned int n);
rand()函數(shù)和srand()函數(shù)被聲明在頭文件stdlib.h中,所以要使用這兩個(gè)函數(shù)必須包含該頭文件:
#include stdlib.h
2. 使用方法
rand()函數(shù)返回0到RAND_MAX之間的偽隨機(jī)數(shù)(pseudorandom)。RAND_MAX常量被定義在stdlib.h頭文件中。其值等于32767,或者更大。
srand()函數(shù)使用自變量n作為種子,用來(lái)初始化隨機(jī)數(shù)產(chǎn)生器。只要把相同的種子傳入srand(),然后調(diào)用rand()時(shí),就會(huì)產(chǎn)生相同的隨機(jī)數(shù)序列。因此,我們可以把時(shí)間作為srand()函數(shù)的種子,就可以避免重復(fù)的發(fā)生。如果,調(diào)用rand()之前沒(méi)有先調(diào)用srand(),就和事先調(diào)用srand(1)所產(chǎn)生的結(jié)果一樣。
舉個(gè)例子,假設(shè)我們要取得0~10之間的隨機(jī)整數(shù)(不含10本身):
/* 例1:不指定種子的值 */
for (int i=0; i10; i++) { printf("%d ", rand()%10); }
每次運(yùn)行都將輸出:1 7 4 0 9 4 8 8 2 4
/* 例2:指定種子的值為1 */
srand(1); for (int i=0; i10; i++) { printf("%d ", rand()%10); }
每次運(yùn)行都將輸出:1 7 4 0 9 4 8 8 2 4
例2的輸出結(jié)果與例1是完全一樣的。
/* 例3:指定種子的值為8 */ srand(8); for (int i=0; i10; i++) { printf("%d ", rand()%10); }
每次運(yùn)行都將輸出:4 0 1 3 5 3 7 7 1 5
該程序取得的隨機(jī)值也是在[0,10)之間,與srand(1)所取得的值不同,但是每次運(yùn)行程序的結(jié)果都相同。
/* 例4:指定種子值為現(xiàn)在的時(shí)間 */ srand((unsigned)time(NULL)); for (int i=0; i10; i++) { printf("%d ", rand()%10); }
該程序每次運(yùn)行結(jié)果都不一樣,因?yàn)槊看螁?dòng)程序的時(shí)間都不同。另外需要注意的是,使用time()函數(shù)前必須包含頭文件time.h。
3. 注意事項(xiàng)
求一定范圍內(nèi)的隨機(jī)數(shù)。
如要取[0,10)之間的隨機(jī)整數(shù),需將rand()的返回值與10求模。
randnumber = rand() % 10;
那么,如果取的值不是從0開始呢?你只需要記住一個(gè)通用的公式。
要取[a,b)之間的隨機(jī)整數(shù)(包括a,但不包括b),使用:
(rand() % (b - a)) + a
偽隨機(jī)浮點(diǎn)數(shù)。
要取得0~1之間的浮點(diǎn)數(shù),可以用:
rand() / (double)(RAND_MAX)
如果想取更大范圍的隨機(jī)浮點(diǎn)數(shù),比如0~100,可以采用如下方法:
rand() /((double)(RAND_MAX)/100) 其他情況,以此類推,這里不作詳細(xì)說(shuō)明。
c語(yǔ)言隨機(jī)數(shù)函數(shù)是 rand()
若要輸出1~10之間的隨機(jī)數(shù),
可用rand()%10+1。