a=rand()%100+1; rand()代表着什么 rand()%100+1为什么就是0~100内取值?

srand(time(NULL));//用系统时间当种子
是什么意思
举个例子
srand(time(NULL)) 这个范围是什么

意思是:用rand()%100产生一个随机的数(1~100间)。

使用rand()是先要设置随机发生因子,srand()函数就是用来设置随机发生因子的。

可以用时间来做因子,DWORD timeGetTime()。

rand函数界限:stdlib.h头文件中有宏#define RAND_MAX 0x7fff。rand产生一个0-0x7fff的随机数,即最大是32767的一个数。


扩展资料

rand()函数每次调用前都会查询是否调用过srand(seed),是否给seed设定了一个值,如果有那么它会自动调用srand(seed)一次来初始化它的起始值。

若之前没有调用srand(seed),那么系统会自动给seed赋初始值,即srand(1)自动调用它一次。

rand()产生随机数时,如果用srand(seed)播下种子之后,一旦种子相同(下面的getpid方法),产生的随机数将是相同的。当然很多时候刻意让rand()产生的随机数随机化。

用时间作种子 srand(time(NULL)),这样每次运行程序的时间肯定是不相同的,产生的随机数肯定就不一样了。

参考资料来源:

百度百科——rand()

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-06
随机数的产生需要一个种子,如果种子相同每次产生的随机数序列也会相同。
你试着不用srand(time(NULL));,你会发现每次程序得到的随机数都是一样,也就失去了随机数的意义。

rand() 是产生一个随机整数的函数,其分布范围是0到最大的整数,
rand() %100 指和100取余,得到一个0到99整数
rand() %100 +1 得到一个1到100的整数追问

种子是干什么用的啊!谢谢

追答

举个例子,以下流程要一个种子2

计算sqrt(2) =1.414 得到的小数部分取前3位做为随机数,即返回414(第1个随机数), 把414作为下一个种子

计算sqrt(414)=20.346 得到的小数部分取前3位做为随机数,即返回346(第2个随机数), 把346作为下一个种子

计算sqrt(346)...... 得第n个随机数

当然计算机里不是这么简单就得到随机数的,其函数比上所列的要复杂,但原理是一样的

本回答被提问者和网友采纳
相似回答