C 隨機函式rand()

2021-10-06 17:30:42 字數 1875 閱讀 2241

每次生成的隨機數都相同:

#include

#include

//rand()

intmain()

每次生成的隨機數都不同:

#include

#include

#include

//time()

intmain()

#include

#include

#include

intmy_rand2()

a[0]放陣列的組長

#include

#include

#include

void

my_rand

(elemtype *a)

}printf

("%c "

,a[i]);

}}

解釋:

//若重複則重新隨機乙個,且從頭再比較有沒有重複

for(

int j=

1;j)

第三行剛開始敲的時候因為沒有加上

j=

1;

一直卡在怎麼讓字母不重複

加上之後,若重複則從頭重新比較,不會因為重複之後重新生成隨機,前面已比較過的幾個就漏了比較,導致最後還是生成了重複的字母

k=

rand()

%6;//隨機生成乙個0〜5間的隨機數

k=

rand()

%6+1

;//模擬玩家擲骰子的點數,每次產生乙個1 到 6之間的整數

k=

rand()

%26+'a'

;//隨機生成a~z的乙個大寫字母

k=

rand()

%26+'a'

;//隨機生成a~z的乙個小寫字母

(呼叫srand時)

//隨機生成一組包含20個不重複的大寫字母

發現多次除錯,依然是生成兩組相同的隨機數。

原因srand(time(null));//導致每次程式生成的2組隨機數都相同

程式呼叫了srand(seed)來初始化她的隨機值

我們試著把它去掉,發現這時候生成了兩組不一樣的隨機數:

(沒有設定種子seed,沒有呼叫srand時)

關於time函式:

time函式可以獲取當前的系統時間(但是獲取的是秒數,是從2023年1月1日零時零分零秒到目前為止所經過的時間)

ctime可以將其轉化為常規的時間

其標頭檔案:c中是

c 隨機函式rand

一 c 中不能使用random 函式 random函式不是ansi c標準,不能在gcc,vc等編譯器下編譯通過。但在c語言中int random num 可以這樣使用,它返回的是0至num 1的乙個隨機數。可改用c 下的rand函式來實現。1 c 標準函式庫提供一隨機數生成器rand,返回0 ra...

C 隨機函式 rand

使用 rand 函式可以獲取 隨機數大小是在0到rand max,值為2147483647,它是在stdlib中定義的,如果我們希望在某個範圍內,可以使用 結合 來實現 但是不難發現,這裡獲得的隨機數是唯一確定的,而不是變化的。所以,如果我們希望獲得變化的隨機數,可以使用下面的方法。因為rand的內...

C程式設計 隨機函式(rand )

1.概念 隨機函式 ran d rand rand 庫函式中系統提供了兩個函式用於產生隨機數 srand 和rand 函式原型 含義int rand void 返回乙個 0,rand max 間的隨機整數。void srand unsigned seed 引數seed是srand 的種子,用來初始化...