新聞中心
C語(yǔ)言如何srand和rand函數(shù)產(chǎn)生10個(gè)1-100內(nèi)的隨機(jī)數(shù)
需要準(zhǔn)備的材料分別有:電腦、C語(yǔ)言編譯器。
創(chuàng)新互聯(lián)專(zhuān)注于巴彥淖爾企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),成都做商城網(wǎng)站。巴彥淖爾網(wǎng)站建設(shè)公司,為巴彥淖爾等地區(qū)提供建站服務(wù)。全流程按需定制,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
1、首先,打開(kāi)C語(yǔ)言編譯器,新建一個(gè)初始.cpp文件,例如:test.cpp。
2、在test.cpp文件中,輸入C語(yǔ)言代碼:
for (int i = 0; i 10; i++)
printf("%d ", rand() % 100 +1);
3、編譯器運(yùn)行test.cpp文件,此時(shí)成功通過(guò)rand產(chǎn)生了10個(gè)1-100內(nèi)的整數(shù)。
請(qǐng)問(wèn)c語(yǔ)言中的隨機(jī)函數(shù)怎么用?
rand()函數(shù) 返回值是產(chǎn)生一個(gè)隨機(jī)數(shù),這個(gè)返回值雖然是隨機(jī)數(shù),但是可能會(huì)發(fā)現(xiàn),每回產(chǎn)生的都一樣,比如:
#include iostream
using namespace std;
void main()
{
for(int i=0;i3;i++){
coutrand()endl;
}
}
運(yùn)行程序后發(fā)現(xiàn),產(chǎn)生的隨機(jī)數(shù),雖然每次運(yùn)行程序時(shí)是隨機(jī)數(shù),但是,后來(lái)再運(yùn)行程序,發(fā)現(xiàn)與上幾次結(jié)果一樣。
這是因?yàn)椋S機(jī)數(shù)的起始值都一樣。
為了產(chǎn)生真正的隨機(jī)數(shù),就應(yīng)該設(shè)置隨機(jī)數(shù)的起始值,這個(gè)要利用srand()函數(shù)。
將上面程序改為:
#include iostream
using namespace std;
void main()
{
cout"請(qǐng)輸入隨機(jī)數(shù)的起始值"endl;
int num;
cinnum;
srand(num);
for(int i=0;i3;i++){
coutrand()endl;
}
}
運(yùn)行程序 就會(huì)發(fā)現(xiàn) 輸入的起始值不同,產(chǎn)生的隨機(jī)數(shù)就不同。
當(dāng)然 也可以產(chǎn)生時(shí)間隨機(jī)數(shù),這個(gè)要用到c語(yǔ)言time.h中的程序,這個(gè)可以供你自己思考,自己解決問(wèn)題,樂(lè)趣更多呢~呵呵~
啰嗦這么多 希望對(duì)您有所幫助!
求c語(yǔ)言的隨機(jī)函數(shù)怎么用
隨機(jī)函數(shù)就是產(chǎn)生數(shù)的函數(shù),c語(yǔ)言里有rand(),srand()等函數(shù)。
用法
#include stdlib.h
#include stdio.h
#include time.h
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) ); //用系統(tǒng)時(shí)間當(dāng)種子,對(duì)隨機(jī)函數(shù)進(jìn)行初始化
for( i = 0; i 10;i++ )
{
k=rand()%100; //產(chǎn)生各個(gè)隨機(jī)數(shù)
printf( " k=%d/n", k );
}
}
詳述
rand() srand() 頭文件為#include stdlib.h
標(biāo)準(zhǔn)C庫(kù)中函數(shù)rand()可以生成0~RAND_MAX之間的一個(gè)隨機(jī)數(shù),其中RAND_MAX 是stdlib.h 中定義的一個(gè)整數(shù),它與系統(tǒng)有關(guān)。
rand()函數(shù)沒(méi)有輸入?yún)?shù),直接通過(guò)表達(dá)式rand()來(lái)引用,rand()%n是產(chǎn)生的隨機(jī)數(shù)對(duì)n取余,起到了取0到n-1之間隨機(jī)數(shù)的作用;
例如可以用下面的語(yǔ)句來(lái)打印兩個(gè)隨機(jī)數(shù): printf("Random numbers are: %i %i/n",rand(),rand());
因?yàn)閞and()函數(shù)是按指定的順序來(lái)產(chǎn)生整數(shù),而未指定運(yùn)行的種子,所以rand()每次使用的都是同一個(gè)種子來(lái)產(chǎn)生隨機(jī)數(shù)序列,因此每次執(zhí)行上面的語(yǔ)句都打印相同的兩個(gè)值,所以說(shuō)C語(yǔ)言的隨機(jī)并不是正真意義上的隨機(jī)。
為了時(shí)程序在每次執(zhí)行時(shí)都能生成一個(gè)新序列的隨機(jī)值,我們通常通過(guò)為隨機(jī)數(shù)生成器提供一粒新的隨機(jī)種子。函數(shù) srand()(來(lái)自stdlib.h)可以為隨機(jī)數(shù)生成器播散種子。只要種子不同rand()函數(shù)就會(huì)產(chǎn)生不同的隨機(jī)數(shù)序列。srand()稱(chēng)為隨機(jī)數(shù)生成器的初始化器。
srand( (unsigned)time( NULL ) ); 用系統(tǒng)時(shí)間當(dāng)種子,對(duì)隨機(jī)函數(shù)進(jìn)行初始化,每次的系統(tǒng)時(shí)間不同,所以種子也就不同,產(chǎn)生的隨機(jī)數(shù)序列也就不同。
簡(jiǎn)單C語(yǔ)言程序隨機(jī)函數(shù)程序?
存入33個(gè)元素的數(shù)組。rand()%33隨機(jī)選一個(gè)元素,同最后一個(gè)元素交換。然后rand()%32隨機(jī)選一個(gè)元素,同倒數(shù)第二個(gè)元素交換。。。所有隨機(jī)數(shù)都放在數(shù)組尾部。輸出數(shù)組最后6個(gè)元素即可。
網(wǎng)站名稱(chēng):c語(yǔ)言隨機(jī)函數(shù)輸入 c語(yǔ)言輸入隨機(jī)數(shù)的庫(kù)函數(shù)
轉(zhuǎn)載來(lái)于:http://fisionsoft.com.cn/article/ddjessd.html