重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这要用到的是rand()函数, srand()函数,和time()函数。
创新互联服务项目包括围场网站建设、围场网站制作、围场网页制作以及围场网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,围场网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到围场省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time()函数需要引入ctime头文件。
srand()用来设置rand()产生随机数时的随机数种子。在调用rand()函数产生随机数前,必须先利用srand()设好随机数种子(seed), 如果未设随机数种子, rand()在调用时会自动设随机数种子为1。
使用rand()函数获取一个随机数
如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。
#includestdio
#includetime.h
int main()
{
for(int i=0;i10;i++)
{
//产生10以内的整数
printf(" rand()%10\n")
}
}
在VC中设计到随机数有两个函数
srand() and rand()
srand() 的作用是是一个种子,提供每次获得随机数的基数而已,rand()根据种子而产生随机数
注意
1:srand() 里的值必须是动态变化的,否则得到的随机数就是一个固定数
2:其实可以不用写srand() ,只用rand()就可以了,省事,简单,例子如下
如果我们想得到一个 0-60的随机数那么可以写成
int i;
i=rand()%60;
就可以了。
当然最好有个统一的标注如下:
int i;
srand((unsigned)time( NULL ));
i=rand()%60;
这样就OK了。
rand()函数 返回值是产生一个随机数,这个返回值虽然是随机数,但是可能会发现,每回产生的都一样,比如:
#include iostream
using namespace std;
void main()
{
for(int i=0;i3;i++){
coutrand()endl;
}
}
运行程序后发现,产生的随机数,虽然每次运行程序时是随机数,但是,后来再运行程序,发现与上几次结果一样。
这是因为,随机数的起始值都一样。
为了产生真正的随机数,就应该设置随机数的起始值,这个要利用srand()函数。
将上面程序改为:
#include iostream
using namespace std;
void main()
{
cout"请输入随机数的起始值"endl;
int num;
cinnum;
srand(num);
for(int i=0;i3;i++){
coutrand()endl;
}
}
运行程序 就会发现 输入的起始值不同,产生的随机数就不同。
当然 也可以产生时间随机数,这个要用到c语言time.h中的程序,这个可以供你自己思考,自己解决问题,乐趣更多呢~呵呵~
啰嗦这么多 希望对您有所帮助!
#include stdlib.h
#include time.h
int main( )
{
int a[100]; /* 存放随机数的数组 */
time_t t1; /* 用于存放时间 */
time(t1); /* 取得当前系统时间 */
srand(t1); /* 设置随机数种子 */
for (i = 0; i 100; i ++) /* 循环生成10个随机数,放到数组a中 */
a[i] = 10 + rand( ) % 90;
/* 数值范围在10到99间,需要不同范围的数据请自行更改 */
...
}