# 猜数字游戏---rand与srand函数,以及时间戳(c语言)

本文介绍了C语言中的猜数字游戏,详细讲解了rand和srand函数的用途,包括rand函数的介绍、使用方法以及srand函数在初始化随机数序列中的作用。还讨论了时间戳在生成不同随机数序列中的作用,以及如何结合使用这些函数来实现一个简单的猜数字游戏。
摘要由CSDN通过智能技术生成

关于猜数字,简单介绍一下两个函数rand和strand以及时间戳的用法。

一、猜数字游戏的规则

1.先在系统生成一个[1, 100]之间的数字用户随便输入-个整数,
2.如果用户输入的数字比系统生成的数字小提示"猜低了"
3.如果用户输入的数字比系统生成的数字大提示猜高了
4.如果相同,提示猜对了

二、猜数字游戏的基本框架和流程

1.1 创建目录函数
1.2 创建游戏函数与玩家进行交互
1.3 main函数调用rand和srand函数,并由目录选择决定游戏走向

三、rand和srand函数

猜数字需要引入随机数,所以利用rand和strand函数。

1.rand函数

3.1.1 rand函数的简介

rand()函数是Excel中产生随机数的一个随机函数。返回的随机数是大于等于 0 及小于 1 的均匀分布随机实数,rand()函数每次计算工作表时都将返回一个新的随机实数。

3.1.2 rand函数的概述

(1)语法:rand();
(2)参数:rand 函数语法没有参数;
(3)功能:返回大于等于 0 及小于 1 的均匀分布随机实数,每次计算工作表时都将返回一个新的随机实数.

3.1.3 rand()函数使用延伸

若要生成 a 与 b 之间的随机实数,应使用: rand()*(b-a)+a
如果要使用函数 rand 生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=rand()”,保持编辑状态,然后按 F9,将公式永久性地改为随机数。

例如:
v1 = rand() % 100; //生成0-99中随机数
v2 = rand() % 100 + 1; //生成0-100中随机数
v3 = rand() % 30 + 1985; //生成1985-2014中随机数
头文件:<stdlib.h>
注:详情见www.cplusplus.com—查找rand,了解更多rand函数功能与用法。

2.srand函数

3.2.1 srand函数引入的原因

srand函数是随机数发生器的初始化函数。srand和rand()配合使用产生伪随机数序列。
srand设置产生一系列伪随机数发生器的起始点,要想把发生器重新初始化,可用1作seed值。任何其它的值都把发生器匿成一个随机的起始点。rand检索生成的伪随机数。在任何调用srand之前调用rand与以1作为seed调用srand产生相同的序列。
此函数可以设定rand函数所用的随机数产生演算法的种子值。任何大于一的种子值都会将rand随机数所产生的虚拟随机数序列重新设定一个起始点。

3.2.2 rand与srand

rand 和srand
函数一:int rand(void);
功能:产生随机值,从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。
函数二:void srand(unsigned seed);
参数seed是rand()的种子,用来初始化rand()的起始值。
可以认为rand()在每次被调用的时候,它会查看:
1) 如果用户在此之前调用过srand(seed),给seed指定了一个值,那么它会自动调用srand(seed)一次来初始化它的起始值。
2) 如果用户在此之前没有调用过srand(seed),它会自动调用srand(1)一次。

3.时间戳

3.3.1时间戳的作用

如果想使每一次的seed调用不同,这个时候就需要时间戳。
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。所以在时间不停的变化下,使得srand每次调用seed都不同。从而实现每次生成随机数列。

函数用法:
void srand (unsigned int seed);
头文件: <time.h>
注:详情见www.cplusplus.com—查找srand,了解更多srand函数功能与用法

四、代码实现

在这里插入代码片#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game() {
   
	printf("开始一局猜数字游戏\n");
	//1、先生成一个[1,100]的随机整数
	<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值