C语言再学习 -- 随机数函数

参看:C++中随机函数rand()和srand()的用法

rand ()函数:可以用来获得一个随机数

所在头文件: stdlib.h

函数说明 :
rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的。rand()返回一随机数值的范围在0至RAND_MAX 间。RAND_MAX的范围最少是在32767之间(int)。用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相同的。用户未设定随机数种子时,系统默认的随机数种子为1。rand()产生的是伪随机数字,每次执行时是相同的;若要不同,用函数srand()初始化它。


srand ()函数:可以用来设置随机数的种子

所在头文件: stdlib.h

函数说明:
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用time(0)的返回值或NULL来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。


time ()函数:可以返回系统时间

所在头文件: time.h

函数说明:

获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。

参看:Linux time()函数

 

rand()和srand()要一起使用,其中srand()用来初始化随机数种子,rand()用来产生随机数。
因为默认情况下随机数种子为1,而相同的随机数种子产生的随机数是一样的,失去了随机性的意义,所以为使每次得到的随机数不一样,用函数srand()初始化随机数种子。srand()的参数,用time函数值(即当前时间),因为两次调用rand()函数的时间通常是不同的,这样就可以保证随机性了。

 

 

/*
 1--100   rand()%100+1  随机数
 输入一个数字 与随机数比较
 猜大了
 猜小了
 猜对了
 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{        
	int num=0,num1=0;
	srand((unsigned int)time(0));	//随机函数
	num1=rand() % 100+1;   //  取余为 0--99  +1
	while(1)
	{
	printf("请输入一个数:");  //放到循环里面
	scanf("%d",&num);
	if(num>num1)
	{
	<span style="white-space:pre">	</span>printf("猜大了\n");
	}
	else if (num==num1) 
	{
		printf("猜对了\n");
		break;
	}
	else
	{
		printf("猜小了\n");
	}
	}
	return 0;		
}

 

随机数【15 ~ 18】:

rand()%(18-5+1)+15 

相关推荐
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值