每次生成的隨機數都相同:
#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 的種子,用來初始化...