#include stdlib.h
我們一直強(qiáng)調(diào)做網(wǎng)站、網(wǎng)站設(shè)計對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)絡(luò)公司不一定是大公司,創(chuàng)新互聯(lián)公司作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。
#include time.h
int main( )
{
int a[100]; /* 存放隨機(jī)數(shù)的數(shù)組 */
time_t t1; /* 用于存放時間 */
time(t1); /* 取得當(dāng)前系統(tǒng)時間 */
srand(t1); /* 設(shè)置隨機(jī)數(shù)種子 */
for (i = 0; i 100; i ++) /* 循環(huán)生成10個隨機(jī)數(shù),放到數(shù)組a中 */
a[i] = 10 + rand( ) % 90;
/* 數(shù)值范圍在10到99間,需要不同范圍的數(shù)據(jù)請自行更改 */
...
}
rand()函數(shù) 返回值是產(chǎn)生一個隨機(jī)數(shù),這個返回值雖然是隨機(jī)數(shù),但是可能會發(fā)現(xiàn),每回產(chǎn)生的都一樣,比如:
#include iostream
using namespace std;
void main()
{
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序后發(fā)現(xiàn),產(chǎn)生的隨機(jī)數(shù),雖然每次運行程序時是隨機(jī)數(shù),但是,后來再運行程序,發(fā)現(xiàn)與上幾次結(jié)果一樣。
這是因為,隨機(jī)數(shù)的起始值都一樣。
為了產(chǎn)生真正的隨機(jī)數(shù),就應(yīng)該設(shè)置隨機(jī)數(shù)的起始值,這個要利用srand()函數(shù)。
將上面程序改為:
#include iostream
using namespace std;
void main()
{
cout"請輸入隨機(jī)數(shù)的起始值"endl;
int num;
cinnum;
srand(num);
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序 就會發(fā)現(xiàn) 輸入的起始值不同,產(chǎn)生的隨機(jī)數(shù)就不同。
當(dāng)然 也可以產(chǎn)生時間隨機(jī)數(shù),這個要用到c語言time.h中的程序,這個可以供你自己思考,自己解決問題,樂趣更多呢~呵呵~
啰嗦這么多 希望對您有所幫助!
隨機(jī)函數(shù)就是產(chǎn)生數(shù)的函數(shù),c語言里有rand(),srand()等函數(shù)。
用法
#include stdlib.h
#include stdio.h
#include time.h
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) ); //用系統(tǒng)時間當(dāng)種子,對隨機(jī)函數(shù)進(jìn)行初始化
for( i = 0; i 10;i++ )
{
k=rand()%100; //產(chǎn)生各個隨機(jī)數(shù)
printf( " k=%d/n", k );
}
}
詳述
rand() srand() 頭文件為#include stdlib.h
標(biāo)準(zhǔn)C庫中函數(shù)rand()可以生成0~RAND_MAX之間的一個隨機(jī)數(shù),其中RAND_MAX 是stdlib.h 中定義的一個整數(shù),它與系統(tǒng)有關(guān)。
rand()函數(shù)沒有輸入?yún)?shù),直接通過表達(dá)式rand()來引用,rand()%n是產(chǎn)生的隨機(jī)數(shù)對n取余,起到了取0到n-1之間隨機(jī)數(shù)的作用;
例如可以用下面的語句來打印兩個隨機(jī)數(shù): printf("Random numbers are: %i %i/n",rand(),rand());
因為rand()函數(shù)是按指定的順序來產(chǎn)生整數(shù),而未指定運行的種子,所以rand()每次使用的都是同一個種子來產(chǎn)生隨機(jī)數(shù)序列,因此每次執(zhí)行上面的語句都打印相同的兩個值,所以說C語言的隨機(jī)并不是正真意義上的隨機(jī)。
為了時程序在每次執(zhí)行時都能生成一個新序列的隨機(jī)值,我們通常通過為隨機(jī)數(shù)生成器提供一粒新的隨機(jī)種子。函數(shù) srand()(來自stdlib.h)可以為隨機(jī)數(shù)生成器播散種子。只要種子不同rand()函數(shù)就會產(chǎn)生不同的隨機(jī)數(shù)序列。srand()稱為隨機(jī)數(shù)生成器的初始化器。
srand( (unsigned)time( NULL ) ); 用系統(tǒng)時間當(dāng)種子,對隨機(jī)函數(shù)進(jìn)行初始化,每次的系統(tǒng)時間不同,所以種子也就不同,產(chǎn)生的隨機(jī)數(shù)序列也就不同。
一、首先包含必要的頭文件
#includestdio.h
這個包含用于輸入輸出的函數(shù)。
#includestdlib.h
這個包含初始化隨機(jī)數(shù)種子、產(chǎn)生隨機(jī)數(shù)的函數(shù)。
#includetime.h
這個包含與時間有關(guān)的函數(shù),初始化隨機(jī)數(shù)種子時可以用到。
二、使用如下公式產(chǎn)生在區(qū)間[min,max]之間的隨機(jī)數(shù)
int r=rand()%(max-min+1)+min;
三、一個例子,產(chǎn)生10個[1,100]的隨機(jī)整數(shù)
#include stdio.h
#include stdlib.h
#include time.h
int main()
{
const int min=1,max=100;
int i,r;
//用當(dāng)前時間初始化隨機(jī)數(shù)種子
srand(time(NULL));
printf("隨機(jī)產(chǎn)生的10個1-100的整數(shù)是:");
for(i=0;i10;i++)
{
r=rand()%(max-min+1)+min;
printf("%d,",r);
}
return 0;
}
四、運行結(jié)果的截圖
截圖1
截圖2