C语言rand函数,srand函数,time函数实现随机数,及猜数字小游戏

怀心之所爱,奔赴山河

前言

最近在复习c的知识,想起之前写过一个猜数字小游戏,所以今天就把自己关于随机数的使用经验分享一下,希望对大家有帮助。

一.rand函数

1.函数的声明如下

可以看到,返回值是int类型,不需要传参,需要调用头文件<stdlib.h>

他会产生一个伪随机数,我们暂将其成为a,a大于等于0且小于等于RADN_MAX

(在大多数编译器下他是32767)。

2.举例

int a=rand()%100;

则a的值是0到99,那我们怎么得到1到100呢?

方法:int a=rand()%100+1;

二srand函数

我们发现,在使用rand()函数时每次运行代码随机值都不变,为什么呢,

我们去搜搜他的相关信息就会发现这一句话

翻译:rand函数返回在0到RAND_MAX范围内的伪随机整数。在调用rand之前,请使用srand函数对伪随机数生成器进行种子初始化。

这里提到了一个名词“种子”,你可以把它理解为创建随机数的基准,不同的种子对应不同的随机数组,默认种子为1,因此我们想实现随机数就要用到不同的种子,那就要用srand函数了

函数定义:

ok可以发现,函数没有返回值,传参类型是unsigned int,头文件是<stdlib.h>

调用它可以为rand设置一个种子,即你传的参数。

3.time函数

为了使种子一直变化我们要引入时间戳了。

时间戳是当前时间与1970年1月1日0时0分0秒的差值,单位是秒,

time函数的声明如下:

time_t   time(time* p);

time_t是32位或64位下的整形

若传入的指针不是空指针则返回值会被存入,若是空指针则函数只返回值,这个值就是时间戳。

综上,我们就可以写出随机数了

srand((unsigned int)time(NULL));int a = rand() % 100;

猜数字游戏:

为了让它更像游戏,我们可以给他做个菜单,并用函数封装一下

void menu()
{printf("###########################\n");printf("########## 开始游戏 ########\n");printf("###########################\n");
}

接着创建变量,使用随机数

int count = 10;int C = count;srand((unsigned int)time(NULL));int a = rand() % 100;
int b;

我们规定她输入的数比那个随机数大了,我们就说猜大了

比随机数小就说猜小了

在她成功猜出后告诉他猜了几次猜出来的

在做个小小的惩罚机制,如果超过10次则电脑关机

这里要用到关机指令

system("shutdown -s -t 5");

代码如下

menu();printf("你要猜的数大于等于0小于100\n");int n;while (1){scanf("%d", &n);if (n == a) {count--;printf("好好好,用了%d次猜对了\n", C - count);count = 5;goto again;}else if (n > a) {count--;if (!count){printf("你的电脑会在5秒后关机\n");system("shutdown -s -t 5");}printf("猜大了,小黑子!就剩%d次了\n", count);}else{count--;if (!count){printf("你的电脑会在5秒后关机\n");system("shutdown -s -t 5");}printf("猜小了,行不行啊小趴菜!就剩%d次了\n", count);}}

最后,让用户选择是继续玩还是停止

用if else即可

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
void menu()
{printf("###########################\n");printf("########## 开始游戏 ########\n");printf("###########################\n");
}
int main()
{int count = 10;int C = count;srand((unsigned int)time(NULL));int a = rand() % 100;
int b;
again:printf("玩游戏输入1  不玩输入0\n");scanf("%d", &b);if (b == 1){menu();printf("你要猜的数大于等于0小于100\n");int n;while (1){scanf("%d", &n);if (n == a) {count--;printf("好好好,用了%d次猜对了\n", C - count);count = 5;goto again;}else if (n > a) {count--;if (!count){printf("你的电脑会在5秒后关机\n");system("shutdown -s -t 5");}printf("猜大了,小黑子!就剩%d次了\n", count);}else{count--;if (!count){printf("你的电脑会在5秒后关机\n");system("shutdown -s -t 5");}printf("猜小了,行不行啊小趴菜!就剩%d次了\n", count);}}}else if (b == 0){printf("哥哥这莫好玩的的游戏居然不玩,我emo了\n");return 0;}elseprintf("你故意输错是吧,呵男人\n");goto again;
}

ok,可以自己试试写写,然后把代码发给朋友让他挑战一下

感觉有用的话就点个赞支持一下吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能的基础-深度学习

什么是深度学习? 深度学习是机器学习领域中一个新的研究方向&#xff0c;它被引入机器学习使其更接近于人工智能。 深度学习是机器学习领域中一个新的研究方向&#xff0c;它被引入机器学习使其更接近于最初的目标——人工智能。 深度学习是学习样本数据的内在规律和表示层次&…

优维携手深职大共建“中国高校‘双碳’技能仿真操作系统”!

优维“双碳”战略合作高校 优维科技与深圳职业技术大学碳中和技术研究院&#xff08;深职碳研院&#xff09;签署战略合作协议&#xff0c;深化产学研&#xff0c;聚力创新“双碳”发展。在“双碳”目标大背景下&#xff0c;优维科技和深职碳研院将携手共同开发中国高校“双碳…

主动红外探测器,预计到2026年将达到16 亿美元

主动红外探测器&#xff0c;也称为运动传感器&#xff0c;是一种通过发射红外辐射并检测反射来检测移动物体存在的电子设备。它们广泛用于安全系统、自动门、照明控制和其他需要运动检测的应用。近年来&#xff0c;由于对安全系统的需求不断增加以及智能家居和建筑的发展&#…

C++标准模板库(STL)

标准模板库&#xff08;STL&#xff09;是一组C模板类&#xff0c;提供常见的编程数据结构和函数&#xff0c;如列表、堆栈、数组等。它是一个容器类、算法和迭代器的库。它是一个通用库&#xff0c;因此&#xff0c;它的组件是参数化的。模板类的相关知识是使用STL的先决条件。…

使用Jenkins和单个模板部署多个Kubernetes组件

前言 在持续集成和部署中&#xff0c;我们通常需要部署多个实例或组件到Kubernetes集群中。通过Jenkins的管道脚本&#xff0c;我们可以自动化这个过程。在本文中&#xff0c;我将演示如何使用Jenkins Pipeline及单个YAML模板文件&#xff08;.tpl&#xff09;来部署多个类似的…

【Mars3d】官网示例与项目仓库的历史版本下载

【Mars3d】官网示例与项目仓库的历史版本下载 1.进入官网仓库&#xff1a; mars3d-vue-example: mars3d功能示例&#xff0c;Vue版本 2.以下载3.4.26版本的历史示例为例 <一>建议先 git clone https://gitee.com/marsgis/mars3d-vue-example.git <二>使用vsco…

Unity | 快速修复Animation missing错误

目录 一、背景 二、效果 三、解决办法 一、背景 最近在做2D 骨骼动画相关的Demo&#xff0c;我自己使用Unity引擎进行骨骼绑定并创建了anim后&#xff0c;一切正常&#xff0c;anim也能播放。但是昨天我修改Obj及子物体的名称&#xff08;由中文改为英文&#xff0c;如&…

svg学习

概念 svg 可缩放矢量图形 svg 使用xml格式定义图像 svg 形状 矩形 <rect> <?xml version"1.0" standalone"no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd&q…

OpenCV入门01:图像处理简介/图像的基础操作

项目开源&#xff0c;地址&#xff1a;https://gitee.com/zccbbg/opencv_study 文章目录 图像处理简介灰度图像二值图像彩色图 opencv 介绍图像基础操作图像读取与显示绘制几何图形图像的属性其他操作算数操作加法混合 图像色彩空间转换 图像处理简介 灰度图像 ● 灰度图像是…

VIOOVI干货分享:生产标准工时的计算与观测次数确认

在制造业中&#xff0c;生产标准工时是一个关键指标&#xff0c;它可以帮助企业确定生产效率、评估员工绩效以及优化生产流程。本文将介绍生产标准工时的计算方法&#xff0c;并探讨如何确认观测次数&#xff0c;以充分利用ECRS工时分析软件。 一、生产标准工时的计算 生产标准…

售后客服日常回复必备的话术

致歉安抚通用 1.非常抱歉耽误您宝贵的时间了&#xff0c;这边给您查询一下&#xff0c;请稍等。 2.非常抱歉&#xff0c;给您添麻烦了。这边为您转接售后专员给您处理&#xff0c;请亲稍等。 3.影响到您的购物体验万分抱歉。 4.这边都会给您尽心解决的呢。 5.我非常理解您…

深度解析高防产品---游戏盾

游戏盾是针对游戏行业所推出的高度可定制的网络安全解决方案&#xff0c;游戏盾是高防产品系列中针对游戏行业的安全解决方案。游戏盾专为游戏行业定制&#xff0c;针对性解决游戏行业中复杂的DDoS攻击、游戏CC攻击等问题。游戏盾通过分布式的抗D节点&#xff0c;可以防御TB级大…

@PersistenceContext和@Autowired在EntityManager上应用的不同

首先PersistenceContext是jpa专有的注解&#xff0c;而Autowired是spring自带的注释 上方图片的意思就是EntityManager不是线程安全的&#xff0c;当多个请求进来的时候&#xff0c;spring会创建多个线程&#xff0c;而PersistenceContext就是用来为每个线程创建一个EntityMana…

AI渲染:改变图像和视频制作的技术革命

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;其应用领域已经覆盖了从医疗、教育到娱乐、艺术等各个行业。其中&#xff0c;AI在图像和视频制作领域的应用尤为引人注目&#xff0c;而AI渲染则是这一领域中的一颗璀璨明珠。AI渲染利用人工智能算法对图像和…

智能外呼系统全新升级,携手企业迈向高效转化新时代

智能外呼系统已成为企业提升业务效率和转化率的重要工具。随着人工智能技术的不断进步&#xff0c;智能外呼系统迎来了全面升级&#xff0c;旨在进一步助力企业优化客户沟通流程&#xff0c;提高业务转化效率。 新升级的智能外呼系统采用了更先进的自然语言处理技术&#xff0c…

Linux free命令使用教程(free指令)(查看内存、系统内存、内存占用、内存使用情况)

文章目录 Linux free命令使用教程1. free命令简介2. free命令选项2.1 显示单位&#xff08;free -b、free -k、free -m、free -g&#xff09;2.2 使用人类可读的格式&#xff08;free -h&#xff09;2.3 显示总计数&#xff08;free -t&#xff09;2.4 连续监视内存使用 3. 解析…

新疆老人扶梯摔倒铁路民警秒速救援 揭秘富维智能识别跌倒技术

近日&#xff0c;吐鲁番北站进站口一位年长的乘客在火车站的扶梯上突然失去平衡摔倒了&#xff0c;紧张的一幕在铁路民警的快速反应下得到了及时的处理。这位民警的敏捷和专业救援能力赢得了大家的称赞&#xff0c;同时也让我们思考&#xff1a;如何更好地及时报警这类事故的发…

【强化学习】基于蒙特卡洛MC与时序差分TD的简易21点游戏应用

1. 本文将强化学习方法&#xff08;MC、Sarsa、Q learning&#xff09;应用于“S21点的简单纸牌游戏”。 类似于Sutton和Barto的21点游戏示例&#xff0c;但请注意&#xff0c;纸牌游戏的规则是不同且非标准的。 2. 为方便描述&#xff0c;过程使用代码截图&#xff0c;文末附链…

马斯克谈六西格玛:管理质量与火箭科学如何相辅相成

如果你问我&#xff0c;作为一个有志于送人类上火星的家伙&#xff0c;六西格玛管理有没有用&#xff1f;我会说&#xff0c;如果把火箭控制的精度与六西格玛得到的生产质量相比&#xff0c;你会发现两者都追求同一件事&#xff1a;接近零缺陷的完美。 六西格玛不只是一组工具…

elasticsearch系列七:聚合查询

概述 今天咱们来看下es中的聚合查询&#xff0c;在es中聚合查询分为三大类bucket、metrics、pipeline&#xff0c;每一大类下又有十几种小类&#xff0c;咱们各举例集中&#xff0c;有兴许的同学可以参考官网&#xff1a;https://www.elastic.co/guide/en/elasticsearch/refere…