用庫函數也可以,有簡便的方法,就是捕獲定時器中的值!思路如下,程序一開始就打開定時器(不開中斷),讓定時器在哪里跑。當你要用隨機數的時候捕獲出定時器中的值,然后經過運算可以得出0-9的隨機數!
公司主營業務:成都網站設計、做網站、移動網站開發等業務。幫助企業客戶真正實現互聯網宣傳,提高企業的競爭能力。創新互聯是一支青春激揚、勤奮敬業、活力青春激揚、勤奮敬業、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰,讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創新互聯推出阿魯科爾沁免費做網站回饋大家。
隨機函數就是產生數的函數,c語言里有rand(),srand()等函數。
用法
#include
#include
#include
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) ); //用系統時間當種子,對隨機函數進行初始化
for( i = 0; i 10;i++ )
{
k=rand()%100; //產生各個隨機數
printf( " k=%d/n", k );
}
}
詳述
rand() srand() 頭文件為#include
標準C庫中函數rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX 是stdlib.h 中定義的一個整數,它與系統有關。
rand()函數沒有輸入參數,直接通過表達式rand()來引用,rand()%n是產生的隨機數對n取余,起到了取0到n-1之間隨機數的作用;
例如可以用下面的語句來打印兩個隨機數: printf("Random numbers are: %i %i/n",rand(),rand());
因為rand()函數是按指定的順序來產生整數,而未指定運行的種子,所以rand()每次使用的都是同一個種子來產生隨機數序列,因此每次執行上面的語句都打印相同的兩個值,所以說C語言的隨機并不是正真意義上的隨機。
為了時程序在每次執行時都能生成一個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函數 srand()(來自stdlib.h)可以為隨機數生成器播散種子。只要種子不同rand()函數就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。
srand( (unsigned)time( NULL ) ); 用系統時間當種子,對隨機函數進行初始化,每次的系統時間不同,所以種子也就不同,產生的隨機數序列也就不同。
c語言隨機數函數是 rand()
若要輸出1~10之間的隨機數,
可用rand()%10+1。
#include stdlib.h
srand(dat); //初始化隨機種子,使用該函數需要上面的頭文件。如果不要這個,每次開機,對應的隨機數都是相同的. dat 也是需要是個隨機數,一般可以用掉電存儲的方式來讀取。
dat = rand() ;
rand()函數 返回值是產生一個隨機數,這個返回值雖然是隨機數,但是可能會發現,每回產生的都一樣,比如:
#include iostream
using namespace std;
void main()
{
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序后發現,產生的隨機數,雖然每次運行程序時是隨機數,但是,后來再運行程序,發現與上幾次結果一樣。
這是因為,隨機數的起始值都一樣。
為了產生真正的隨機數,就應該設置隨機數的起始值,這個要利用srand()函數。
將上面程序改為:
#include iostream
using namespace std;
void main()
{
cout"請輸入隨機數的起始值"endl;
int num;
cinnum;
srand(num);
for(int i=0;i3;i++){
coutrand()endl;
}
}
運行程序 就會發現 輸入的起始值不同,產生的隨機數就不同。
當然 也可以產生時間隨機數,這個要用到c語言time.h中的程序,這個可以供你自己思考,自己解決問題,樂趣更多呢~呵呵~
啰嗦這么多 希望對您有所幫助!
c語言中產生隨機數的相關函數主要包括srand和rand函數,兩者配合生成隨機數據,測試代碼如下,
#includestdio.h
#include stdlib.h
#include time.h
void main()
{
int i=0,j=0;
int p[5][5]={0};
srand(time(NULL));
for(i=0;i5;i++)
for(j=0;j5;j++)
p[i][j]=rand()%100+1;//產生1-100的隨機數存入數組p中
printf("二維數組p為:\n");
for(i=0;i5;i++)
{
for(j=0;j5;j++)
printf("%d\t",p[i][j]);
printf("\n");
}
}
一般srand和rand配合使用產生偽隨機數序列。rand函數在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次調用rand函數生成的偽隨機數序列都是一樣的。srand(unsigned seed)通過參數seed改變系統提供的種子值,從而可以使得每次調用rand函數生成的偽隨機數序列不同,從而實現真正意義上的“隨機”。通常可以利用系統時間來改變系統的種子值,即srand(time(NULL)),可以為rand函數提供不同的種子值,進而產生不同的隨機數序列。
當前文章:單片機c語言的隨機函數 隨機函數代碼c語言
網站URL:http://m.kartarina.com/article12/dodsjgc.html
成都網站建設公司_創新互聯,為您提供小程序開發、定制開發、外貿網站建設、虛擬主機、微信小程序、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯