三、C语言分支与循环知识点补充——随机数生成

本章分支结构的学习内容如下:

三、C语言中的分支与循环—if语句 (1)

三、C语言中的分支与循环—关系操作符 (2)

三、C语言中的分支与循环—条件操作符 与逻辑操作符(3)

三、C语言中的分支与循环—switch语句(4)分支结构 完


本章循环结构的学习内容如下:

三、C语言中的分支与循环—while循环 (5)

三、C语言中的分支与循环—for循环 (6)

三、C语言中的分支与循环—do-while循环 (7)

三、C语言中的分支与循环—break和continue语句(8)循环结构 完  

三、C语言中的分支与循环—循环嵌套 (9) 

三、C语言中的分支与循环—goto语句 (10) (完) 


1.rand() 函数

rand() 函数在 C 语言中用于生成伪随机数。这个函数定义在 <stdlib.h> 头文件中,每次调用时会返回一个 0 到 RAND_MAX 之间的整数,其中 RAND_MAX 也定义在 <stdlib.h> 中,通常是一个相对较大的数(在多数系统上是 32767)。

rand() 函数在 C 语言中用于生成伪随机数。这个函数定义在 <stdlib.h> 头文件中,每次调用时会返回一个 0 到 RAND_MAX 之间的整数,其中 RAND_MAX 也定义在 <stdlib.h> 中,通常是一个相对较大的数(在多数系统上是 32767)。

1)基础语法

rand() 函数的基本语法很简单,它不需要任何参数,并返回一个伪随机数。

int randomNumber = rand();

 

2)使用 rand() 函数生成特定范围的随机数

通常,你可能需要生成一个特定范围内的随机数,比如 0 到 99。这可以通过取模操作符(%)来实现:

int randomNumber = rand() % 100; // 生成一个 0 到 99 之间的随机数

2.随机数种子 — srand()

rand() 生成的是伪随机数,这意味着如果你不设置随机种子,那么每次程序运行时生成的随机数序列都是相同的。为了每次都生成不同的随机数序列,我们使用 srand() 函数来设置随机数种子。

void srand(unsigned int seed);

通常,将当前时间作为种子:

#include <stdlib.h>
#include <time.h>srand((unsigned) time(NULL));

示例代码

下面是一个使用 rand()srand() 函数的完整示例,程序中生成了 0 到 99 范围内的 5 个随机数。

这个程序首先包含了 <stdlib.h><time.h> 头文件,这些是使用 rand()srand() 所必需的。在 main 函数中,首先调用 srand() 设置随机数种子,然后循环五次生成并打印随机数。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main() {// 设置随机数种子srand((unsigned) time(NULL));// 打印 5 个随机数for (int i = 0; i < 5; i++) {int randomNumber = rand() % 100;printf("%d ", randomNumber);}return 0;
}

3.注意事项

  • rand() 生成的是伪随机数,适合大多数基本需求,但不应用于安全相关或对随机性要求很高的场景。
  • 如果不调用 srand() 设置随机种子,每次程序运行时 rand() 函数生成的随机数序列都是相同的。
  • 在一个程序中,srand() 只需调用一次即可。频繁调用可能会导致随机性降低。

4.代码练习

游戏要求: 1. 电脑自动生成1~100的随机数 2. 玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜对,游戏结束

这个游戏将由以下部分组成:

  1. 生成随机数:电脑生成一个1到100之间的随机数。
  2. 用户输入:允许用户输入一个猜测的数字。
  3. 比较和反馈:程序将用户的猜测与随机数进行比较,并根据猜测的数字是大了还是小了给出反馈。
  4. 重复猜测:直到用户猜对数字,游戏结束。

    解题步骤:

  • 引入必要的头文件stdio.h 用于输入输出,stdlib.htime.h 用于生成随机数。
  • 初始化随机数生成器:使用 srand(time(NULL))
  • 生成随机数:使用 rand() % 100 + 1 生成1到100之间的随机数。
  • 循环等待用户输入:使用 do-while 循环。
  • 读取用户输入:使用 scanf 读取用户的猜测。
  • 比较和反馈:使用 if-else 语句判断用户输入与随机数的大小关系,并给出相应的提示。
  • 猜中数字后结束游戏:当用户猜中数字时,退出循环,并恭喜用户。
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>int main() {int randomNumber, guess;// 初始化随机数生成器srand(time(NULL));// 生成1到100之间的随机数randomNumber = rand() % 100 + 1;printf("猜数字游戏开始!我已经选择了一个1到100之间的数字。\n");do {printf("请输入你的猜测:");scanf("%d", &guess);if (guess > randomNumber) {printf("太大了!再试试看。\n");} else if (guess < randomNumber) {printf("太小了!再试试看。\n");}} while (guess != randomNumber);printf("恭喜你,猜对了!数字就是 %d。\n", randomNumber);return 0;
    }
    

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

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

相关文章

java实验室预约管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 实验室预约管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean&#xff08;mvc模式)&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数 据库&#xff0c;系统主要采用B/S模式开发。开发环境为T…

【触想智能】嵌入式工控一体机的特点与应用场景分析

嵌入式工控一体机是一种用于工业自动化控制的计算机设备&#xff0c;它将显示器、主机、键盘、鼠标等器件集成在一起&#xff0c;具有高可靠性、抗干扰能力强、易于维护等特点。 嵌入式工控一体机&#xff0c;有内嵌式和外嵌式两种&#xff0c;在社会生产中被广泛应用&#xff…

【194】PostgreSQL 14.5 编写SQL从身份证号中查找性别,并且更新性别字段。

假设有一张用户表 t_user &#xff0c;该表设计如下&#xff1a; id: character varying 主键 name: character varying 姓名 idcard: character varying 身份证号 gender: smallint 性别&#xff0c;女是0&#xff0c;男是1根据身份证号查找所有未填写…

stable diffusion 基础教程-文生图

置顶大模型插件资源链接 你如果没有魔法上网,请自取 百度云盘链接:链接:https://pan.baidu.com/s/1_xAu47XMdDNlA86ufXqAuQ?pwd=23wi 提取码:23wi 有疑问加微:mincarver 界面介绍 参数解释 参数解释Sampling method扩散去噪算法的采样模式,不同采样模式会带来不一样的效…

thinkadmin小程序用户登录,获取手机号

<?php namespace app\api\controller; use app\data\service\UserAdminService; use app\data\service\UserTokenService; use think\facade\D

C++_菱形继承(虚继承)

菱形继承 and 虚继承 菱形继承介绍菱形继承源码菱形继承运行结果 虚继承介绍虚继承源码虚继承运行结果 菱形继承介绍 本文主要介绍菱形继承基本操作(仅附源码 and 运行结果) 1.正常菱形继承 会产生 在孙子类 中产生两个 不同的基类 菱形继承逻辑图 菱形继承源码 #include<…

某金属加工公司的核心人才激励体系搭建项目纪实

【客户行业】金属加工行业 【问题类型】薪酬体系/激励体系 【客户背景】 某大型金属加工企业位于河北地区&#xff0c;成立于2000年&#xff0c;隶属于某大型有色金属集团&#xff0c;是一家集科研、开发、生产、销售于一体的国有企业&#xff0c;人员达到1000人。经过多年…

Linux内核--进程管理(九)Linux内核进程管理进程优先级

目录 一、引言 二、NICE值(静态优先级) 三、优先级和实时进程 ------>3.1、chrt ------>3.2、实时/非实时进程的区 四、O1调度 ------>4.1、多核平均负载指数 ------>4.2、O1调度器处理流程 五、CFS完全公平调度 ------>5.1、产生调度的时机 ------&…

微信小程序使用mqtt开发可以,真机不行

以下可以解决我的问题&#xff0c;请一步一步跟着做&#xff0c;有可能版本不一样就失败了 一、下载mqtt.js 前往蓝奏云 https://wwue.lanzouo.com/iQPdc1k50hpe 下载好后将.txt改为.js 然后放入项目里 二、连接mqtt const mqtt require(../../utils/mqtt.min); let cli…

关于“Python”的核心知识点整理大全64

目录 20.2.15 确保项目的安全 settings.py 20.2.16 提交并推送修改 20.2.17 创建自定义错误页面 1. 创建自定义模板 500.html settings.py settings.py 注意 views.py 20.2.18 继续开发 往期快速传送门&#x1f446;&#xff08;在文章最后&#xff09;&#xff1a…

LiveGBS流媒体平台GB/T28181常见问题-国标编号是什么设备编号和通道国标编号标记唯一的摄像头|视频|镜头通道

LiveGBS国标GB28181中国标编号是什么设备编号和通道国标编号标记唯一的摄像头|视频|镜头通道 1、什么是国标编号&#xff1f;2、国标设备ID和通道ID3、ID 统一编码规则4、搭建GB28181视频直播平台 1、什么是国标编号&#xff1f; 国标GB28181对接过程中&#xff0c;可能有的小…

自然语言处理4——深度学习驱动情感分析 - Python高级实践

写在开头 在当今数字化时代,大数据和自然语言处理(NLP)技术的蓬勃发展使得情感分析在企业和社交媒体等领域得到广泛应用。其中,深度学习作为NLP领域的一项重要技术,为情感分析任务的处理提供了强大的工具。本文将介绍深度学习在情感分析中的应用,并通过Python中主要的深…

2022年中职组“网络安全”赛项湖南省B-3——私钥泄漏

B-3&#xff1a;应用服务漏洞扫描与利用 任务环境说明&#xff1a;需要环境有问题可以加q 服务器场景&#xff1a;Server15服务器场景操作系统&#xff1a;未知&#xff08;关闭链接&#xff09; 使用命令nmap探测目标靶机的服务版本信息&#xff0c;将需要使用的参数作为FLA…

用通俗易懂的方式讲解:结合检索和重排序模型,改善大模型 RAG 效果明显

最近出现了在构建聊天机器人方面的应用浪潮&#xff0c;这主要得益于LlamaIndex 和 LangChain 这样的框架。许多这类应用都采用了用于检索增强生成&#xff08;RAG&#xff09;的标准技术栈&#xff0c;其中包括以下关键步骤&#xff1a; 向量存储库&#xff1a; 使用向量存储库…

若依前后台分离项目不想配nginx部署方案

若依前后台分离框架不使用Nginx部署项目 1、修改ResourcesConfig 文件 以下是完整文件 Configuration public class ResourcesConfig implements WebMvcConfigurer {Autowiredprivate RepeatSubmitInterceptor repeatSubmitInterceptor;Overridepublic void addResourceHand…

数据库——SQL注入攻击

【实验内容及要求】 一、内容&#xff1a;掌握SQL注入攻击的原理&#xff0c;掌握基本SQL注入攻击的方法&#xff0c;掌握防SQL注入攻击的基本措施。 二、要求&#xff1a; 1. DVWA环境配置 DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一个用来进行安全…

leetcode算法题之递归--深度优先搜索总结

文章目录 1.全排列2.子集 1.全排列 全排列 class Solution {vector<vector<int>> ret;vector<int> path;bool check[7];//标记nums数组某个下标是否已访问&#xff0c;剪枝使用 public:vector<vector<int>> permute(vector<int>& n…

计算机组成原理 指令流水线

文章目录 指令流水线指令流水线的概念流水线性能分析流水线的吞吐率流水线的加速比流水线的效率 影响流水线的因素结构相关 (资源冲突)数据相关 (数据冲突)控制相关 (控制冲突) 流水线分类超量流水线 指令流水线 #mermaid-svg-vSsJnNqZf24LgjVK {font-family:"trebuchet m…

Linux 修改主机名称并通过主机名称访问服务器

一、命令提示符简介 当我们打开终端的时候&#xff0c;我们要输入命令的左边就是命令提示符&#xff0c;如下图&#xff0c;接下来介绍下他们分别代表什么含义 1、root 和 xhf 表示的是当前登录的用户名称。 2、node2 表示的当前的主机名称。 3、~ 表示的是当前的目录 4、# 表示…

基于缺陷模式的软件测试

基于缺陷模式的软件测试是一种常见的软件测试方法&#xff0c;旨在发现和识别软件系统中可能存在的缺陷模式。它通过分析过去的软件缺陷数据&#xff0c;构建缺陷模式库&#xff0c;并基于这些模式来设计测试用例。 该方法的基本步骤如下&#xff1a; 收集缺陷数据&#xff1a…