2016-09-15 27 views
1

作爲C的新手,我試圖熟悉隨機數生成器。我知道如何在特定時間間隔(如1和100)之間得到一個隨機數,但我很好奇,是否有可能得到一個隨機數,即範圍在數組元素內?我會爲此使用rand()嗎?我試圖在網上搜索一些答案,但找到了解決方案。舉例來說,如果我有一個數組:隨機數,範圍是數組的元素

Array[10] = {50,26,29,10,78,12,45,83,39,55}; 

,我想創建一個隨機數的結尾值是數組中的數字,我會怎麼做這在C?

+0

隨機播放索引並從數組中選擇數字。 –

+0

'隨機的人'會推動你走上正軌。 –

+0

爲什麼你沒有得到0到9之間的隨機數並輸出arr [randomnumber]? – Raman

回答

0

只需選擇一個隨機索引並訪問它。

Array[rand() % 10]; 
+0

謝謝!這有很大幫助。我不確定如何在我的程序中實現rand()來做到這一點,但現在看起來很簡單。 – Nack

2

簡單地生成一個隨機數,它是數組中的索引,並讀出該位置的數字。

const int index = rand() % (sizeof Array/sizeof *Array); 
const int value = Array[index]; 

請注意,使用這樣的模不會給你最好的隨機數,但它應該至少工作。

0

嘗試獲得隨機索引。

index = rand() % 10; 

A[index] // This gets a random value in your range