关于C语言的随机数,麻烦了

来源:百度知道 编辑:UC知道 时间:2024/09/22 20:16:00
我想生成一个范围早5-50内(包括3,50)的随机数,并且可以接着用这个数计算的话要怎么做?

设置随机数方法

(1) 首先加入头文件#include <time.h> 之所以要加time.h文件,因为要用它来作为时间种子

(2)设置时间种子
srand((unsigned)time(NULL));

(3)生成随机数

rand()%N

但最好用下面的形式

(int)rand()/(double)(RAND_MAX+1.0)*N

因为rand()%N 误差要大一些

。。。。。。。。

如例:生成一个范围早5-50内的随机数

int i;

i=(int)rand()/(double)(RAND_MAX+1.0)*46+5;

若(包括3,50) 也就是说生成3-50 而不生成4

可以用个循环

do{

i=(int)rand()/(double)(RAND_MAX+1.0)*48+3; //3-50
}while(i==4) // 将4去掉

这样就满足了

rand()%46+5
rand()返回一个随机整数,然后对这个整数取46的余数,则rand()%50在0到45之间,再加上5就是5到50了。