C語言的獲取隨機數的函數為rand(), 可以獲得一個非負整數的隨機數。要調用rand需要引用頭文件stdlib.h。
要讓隨機數限定在一個范圍,可以采用模除加加法的方式。
要產生隨機數r, 其范圍為 m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理為,對於任意數,
0 <= rand()%(n-m+1) <= n-m
(即rand()%(n-m+1)生成的隨機數是在0到n-m之間的)
於是
0+m <= rand()%(n-m+1)+m <= n-m+m
(於是給這個隨機數加上m就可以得到m到n-m之間的隨機數)
即
m<=rand()%(n-m+1)+m<=n
示例代碼
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main() //生成10個在77-100之間的隨機數
{
int random, i;
srand(time(NULL));
for(i=0; i<10; ++i)
{
random = 77 + rand() % 24;// 24 = 100-77+1
printf("%d ",random);
}
}
運行結果

