C语言:随机数函数rand和srand

一、关于随机数函数rand()和srand()

1.rand()和srand()

1) 首先给srand()提供一个种子(即可看作通过srand()将rand()初始化,但每次初始化的值是不同的,这样就能得到新的随机数序列。而由此,我们易知这个“种子”本身应该是具有变化性的,所以在后文我们用到了time这个变化的量作为“种子”),它是一个unsigned int类型,其取值范围从0~65535;

2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(0-RAND_MAX),范围为0~32767。RAND_MAX定义在stdlib.h(所以需要调用stdlib.h头文件)中。

3) 根据需要多次调用rand(),从而得到多个随机数;

2.time()

1)通常使用系统时间来进行初始化,即使用time()函数获取系统时间,它的返回值为time_t类型,要转换为unsigned int 类型之后再传给srand()函数。使用time()函数还需要调用“time.h”头文件。

2)P.s.:time(0)返回的是系统的时间 (从1970.1.1算起的秒数) ,可以使用当前时钟time(0)作为给srand() 的种子。(还有srand((unsigned)time(NULL))的写法也是一样的)

二、随机函数的引申用法

1)从0开始的随机数:eg:生成0~10的随机数,那我们可以利用rand()%10;来实现。

2)从i开始的随机数(i!=0):eg:生成10~255的随机数,那我们可以利用rand()%255+10;来实现。

下面附上一个例子:随机输出10个随机数:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>           	
int main( )
{ 
    int i;

    srand(time(0)); 		      //初始化随机数
    for( i = 0; i < 10; i++ )     //打印出10个随机数
        printf("%d\n", rand() );
        
	return 0;
}

今天下午考c语言,考前写个文压压惊~

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值