2016-11-17 79 views
-2

這裏的例外是我的代碼:隨機奇數同一個號碼的使用C

alpha = ((rand() % 12) + 1) * 2 + 1; 

我要生成隨機0-25之間號碼。但除整數。我怎樣才能解決這個問題?謝謝。

+1

生成並檢查,如果13,則重新生成。 –

+2

還包含25或23是你想要的最後一個?在0-25之間是有點奇怪的措辭... –

+0

其實gcd(阿爾法,26)= 1這就是爲什麼13不應該包括在內。 – misshyde

回答

1

生成從0號到23如果它是一個13,然後存儲25在變量:

alpha = ((rand() % 11) + 1) * 2 + 1; 
if (alpha == 13) alpha = 25; 
+0

它能正常工作,謝謝。 – misshyde

0

做一個簡單的循環,如果阿爾法得到13重試操作:

int alpha = 13; 
    while (alpha == 13) 
    alpha = ((rand() % 12) + 1) * 2 + 1; 
+1

(Psst。我建議你在別人注意到之前刪除這個答案。) –

+0

它有什麼問題? – user3794667384

+0

https://xkcd.com/221/ –

0
int universe[] = {1, 3, 5, 7, /* ... omit 13 ... */ 25}; 
int index = randto(sizeof universe/sizeof *universe); 
alpha = universe[index]; 

其中randto(n)0返回一個隨機數直到n