1 //要取得[a,b)的随机整数,使用(rand() % (b-a))+ a; 左闭右开
2 int RandomInRange_leftClose_rightOpen(int a, int b)
3 {
4 srand((unsigned int)time(NULL));
5 return (rand() % (b-a))+ a;
6 }
7 //要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a;
8 int RandomInRange_leftClose_rightClose(int a, int b)
9 {
10 srand((unsigned int)time(NULL));
11 return (rand() % (b-a+1))+ a;
12 }
13 //要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1;
14 int RandomInRange_leftOpen_rightClose(int a, int b)
15 {
16 srand((unsigned int)time(NULL));
17 return (rand() % (b-a))+ a + 1;
18 }
注意,由于rand()直接产生的数据范围很大(0~RAND_MAX),其中RAND_MAX在VS2010下为0x7fff,也就是32767。因此要获取的数据量较少时所获得数字并不是完全随机的,但数据量足够的时候是随机的。