int i;
/* 根据当前时间产生随机数种子
* 以使每次产生的随机数不相同.
*/
srand( (unsigned)time( NULL ) );
/* 显示10个随机数. */
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
注:
1、采用取模运算,来将结果限定在一定范围内,比如,要产生的随机数都小于一个整数max,则rand()%max将产生0~(max-1)范围内的随机整数。
2、srand( (unsigned)time( NULL ) );在整个函数(或者线程)中应该只使用一次,这样,每个rand()才能产生真正的随机数。
3、如果要产生的随机数超过rand()的范围(0~RAND_MAX),例如要产生unsigned long型的整数,则可用如下形式((unsigned long)rand())<<16 | rand()。
评论