标题:求助:关于rand()的用法
只看楼主
joulejcc
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-12-24
 问题点数:0 回复次数:3 
求助:关于rand()的用法
前几天上课的时候老师给我们介绍了C语言中的一个rand()函数,说是可以随机产生0到1的数,但是我上机编写了一个程序,发现它并不是产生的0到1的数。我上网搜了一下,一些人说这个函数要和srand()一起使用,但是我把他们的程序编译不通过。那位要是知道就麻烦你教我一下。谢谢!
搜索更多相关主题的帖子: rand 用法 
2005-12-24 00:15
吸血鬼王
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2005-12-17
得分:0 

可以这样: num=rand()/(rand()+0.1) 注意把num定义成float变量就可以了

2005-12-24 07:46
ryxhh
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2005-12-18
得分:0 
srand()是随机数种子,种子相同,产生的随机也相同,所以一般用时间函数time()作种子,这样就不会产生完全一致的随机数,如:
srand((unsigned)time(NULL));
产生的数为从1970年1月1日开始到现在时间的秒数.
rand()可以产生0到n之间的随机数,用法如下:
num=(int)(n*rnad()/RAND_MAX+1.0)
简单用法如:
num=rand()%n;

2005-12-24 09:26
cleverfox
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-11-21
得分:0 
实际上来说rand()是伪随机数,它可以产生0——MAXINT之间的整数。使用srand的目的就是为了让每次产生的随机数不同。正如楼上的同志所写的,先使用srand,然后再用rand,这样就可以保证每次所产生的随机数不完全相同了。
举例:掷骰子
int num;
srand(time(NULL));
num = rand() % 6 + 1;
此时num产生的是1——6之间的整数,若要产生其他的数,方法类似

Fox
2005-12-25 19:00



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-39742-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021030 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved