引用:
作者: a19870504
我要限制他輸出的範圍的話 是使用 rand()%N+1 就會是限定範圍在1~N之間
然後小弟用手算了一下 感覺不太對阿 ="=
|
依據一般說明 rand() 會產生0~32767之間的亂數
但
打開 stdlib.h 可以找到其原形
int rand(void)
而
C/C++ 的 int 整數使用 4個byte紀錄
範圍是
int 2147483647 ~ -2147483648
所以證明
不一定最大值是 32767 (不同版本甚至編譯器 都可能有不同結果)
回到你說 感覺不太對阿
應該是沒有問題的啊
100 取 N 的餘數
範圍是在 0 ~ N-1
所以+1 的話
範圍就變成 1 ~ N
一個得到字元的範圍之應用
(char)(rand()%26 +65); //轉成英文字母 (A~Z)
(char)(rand()%10 +48); //轉成阿拉伯數字 (0~9)