rand()函数的调用---C语言

在这里插入图片描述

一、rand

1、头文件
每次调用时需要调用: <stdlib.h>
在这里插入图片描述这里说明,调用rand函数时需要srand进行初始化!如若不进行初始化,会出现相同的随机数。
2、一般应用

一般应用:int rand (void); int—整型类型;void----不需传输参数

rand()不需要参数,它会返回一个从0到最大随机数-RAND_MAX(32767)的任意整数;
1.产生随机整数 int num = rand() % n +a;其中的a是起始值,n-1+a是终止值,n是整数的范围, rand() % n产生0~n-1的随机数,+a表示a到n-1+a,例如: 如果你要产生0~99的随机数字,可以表达为:int num = rand() %
100 即:num的值就是一个0~99中的一个随机数了; 如果要产生1~100,则是:int num = rand() % 100 +1,即可产生1-100的随机数。
2.产生随机小数 若要产生0至1之间的小数,则可以需先取得0至10的整数,然后除以10,即可得到10个随机小数; 若要得到“随机到百分位”的随机小数,则需要先得到0~100的整数,然后均除以100,其它情况依此类推。

例如:
int main ()
{
int i;
for (i = 0; i <= 10; i++)
{
printf(“%d “,rand() );
}
printf(”\n”);
return 0;
}上述代码运行每一次运行都会产生与第一次相同的随机数!

3、通常rand()产生的随机数在每次运行的时候都是与上一次相同的,如要产生每一次不同的随机数,就要借用time函数。

二、srand

1、头文件

每次调用时需要调用: <stdlib.h>,与rand相同

2、一般应用

void srand (unsigned int seed)
一般形式:无返回值,传入的参数是无符号整形种子(seed),下面是seed的解释

在这里插入图片描述译文:由伪随机数生成器算法用作种子的整数值

int main ()
{
	srand(1);
	int i;
	for (i = 0; i <= 10; i++)
	{
		printf("%d ", rand());
	}
	printf("\n");
	return 0;
}

结果如下:
在这里插入图片描述

如将seed改为2,结果如下,但每次仍相同。

在这里插入图片描述

上述代码运行结果如上图,对于srand(seed)函数,seed的值直接决定随机数的产生结果;也就是如果seed的值确定,则随机数产生的值也就确定,由此可知如若想产生每次不同的结果就需要使得seed的值每次都不同,即借助time函数。

三、time

1、头文件

每次调用时需要调用: <time.h>

2.一般应用
time_t time (time_t* timer);
在这里插入图片描述返回值一般是当前的时间戳
时间戳:可以当作此刻的时间,每秒都不同。时间戳转换网址在这里插入图片描述

int main ()
{
	srand((unsigned int)time(NULL));
	int i;
	for (i = 0; i <= 10; i++)
	{
		printf("%d ", rand());
	}
	printf("\n");
	return 0;
}

运行结果:三次运行结果如下,可以看到每次都不同(只要运行间隔不少于一秒钟)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值