C语言-rand+srand+time的使用

news2024/11/20 2:45:20

1.随机数字的生成

rand

随机数字的生成需要rand,这里需要知道的是rand需要头文件是stdlib,也就是#include<stdlib.h>。 这里的循环可以用for

所以我们可以在主函数里面写出

#include<stdio.h>
#include<stdlib.h>//rand头文件

int main()

{

   printf("%d\n",rand());//rand括号里面在第一次打印的时候会生成随机数字,\n换行 

   printf("%d\n",rand());

   return 0;

}

printf("%d\n",rand()),但是这里面需要知道的是rand是数字确实是随机生成的数字,但是不是真正的随机数字,因为如果你打印出来就会发现,只有第一次的数字是随机的,之后的数字不是随机的,也就是说此时的随机生成数字是伪随机。

原因是rand函数是对应一个叫做种子的基准,如果你想改变每次随机的数字,而不是只是第一次的数字,你就要改变种子的基准。

srand

在C语言里面又提供一个函数,叫做srand,是用来初始化随机数的生成器的

下面举例

#include<stdio.h>
#include<stdlib.h>//rand头文件

int main()

{
   srand(1)

   printf("%d\n",rand());// 此时的数字是41

   printf("%d\n",rand());//此时数字是18467

   return 0;
}


#include<stdio.h>
#include<stdlib.h>//头文件

int main()

{
   srand(2)

   printf("%d\n",rand());//此时的数字45 

   printf("%d\n",rand());//此时数字是29216

   return 0;
}
//这里面的是举例数字

此时你需要知道,当srand里面的数字发生变化的时候,rand打印的数字也发生变化,但是我们不可能每次都去手动改变srand是数字。所以C语言里面又引入一个叫做time 的东西

time

什么是time,简单说的就是时间,也就是srand的变化数值和时间有关系。time的意思就是,函数会返回当前的日历时间,简单说就是,返回的是1970年1⽉1⽇0时0分0秒到现在程序运⾏时间之间的差值,单位是秒。返回类型是time_t,  time_t函数类型本质上就是32或者64位的整数类型。

而如果time是NULL,则就只是返回当前时间的差值。time返回的这个时间差也被成为;时间戳。time需要包含的头文件是time.h

此时举例time的使用

#include<stdio.h>
#include<stdlib.h>//rand头文件

int main()

{
   srand((unsigned int)time(NULL))
//这里面是time(null)也就是之前的时间到当前的时间,
时间每秒都会变化,所以srand也是每次都会变化,为什么
要前面加上unsigned int 因为有些编译器会显示又=有危险,
这时候我们强制转换就可以了。

   printf("%d\n",rand());// 此时的数字是41

   printf("%d\n",rand());//此时数字是18467

   return 0;
}

但是因为此时生成的随机值比较大,总的数值是32767,也就是你取值是从0-32767这个区间取值,如果你需要的猜字游戏只是十几个人或者几百个数字,那怎么办。很简单。此时只需要如下操作就可以任意更改你需要的时间

#include<stdio.h>
#include<stdlib.h>//rand头文件
#include<time.h>//time头文件
1.
printf("%d\n",rand());//把这个代码变成下面的代码
printf("%d\n",rand() % 100);
//%是一个模运算符,表示将 rand() 函数生成的随机数对100取模。
也就是说,无论 rand() 生成的随机数是多少,它都会在0到99之间。

2.
printf("%d\n",rand() % 100+1);//此时随机生成的数字是在0-100之间

3.
printf("%d\n",100 + rand() % 100+1);//此时生成的数字在100-200之间

4.
printf("%d\n",a + rand() % (b-a+1));//随机生成a-b之间的数字

此时随机数值的操作已经完成。

代码1
#include<stdio.h>
#include<stdlib.h>//rand头文件
#include<time.h>//time头文件
int main()

{
   srand((unsigned int)time(null));//直接翻译,随机数字


   printf("%d\n",rand() % 100+1);//取值1-100之间


   return 0;
}




代码2 生成的是10-20的随机数字
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>//rand头文件
#include<time.h>//time头文件
int main()
{
	srand((unsigned int)time(NULL));
		printf("%d\n", 10+rand() % 10 + 1);


	return 0;
}

此时因为没有输入数值,所以直接打印的就是是随机数字。所以此时随机数字的生成就结束了。

此时如果你需要的只是随机抽取一个人对应的座位号,那到这里就结束了。

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

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

相关文章

中仕公考:教师编制和事业单位d类一样吗?

教师编制和事业单位D类在考试内容、专业要求、晋升途径等方面有很大的不同中仕为大家介绍一下&#xff1a; 考试内容&#xff1a;教师编的考试包括教育综合知识和学科专业知识&#xff0c;有的地区会额外考公共基础知识。事业单位D类的考试更侧重于职业能力倾向测验和综合应用…

机器学习理论公式推导及原理—决策树

机器学习公式推导及原理—决策树 根据西瓜书中的公式与内容来进行推导和实现 算法原理 从逻辑角度&#xff0c;一堆if else语句的组合从几何角度&#xff0c;根据某种准则划分特征空间。最终目的&#xff1a;将样本越分越“纯。 信息熵的概念 自信息&#xff1a;是指随机变量…

嵌入式学习55-ARM4(ADC和I²C)

1、什么是ADC,模拟量和数字量有什么特点&#xff1f; ADC&#xff1a; …

Review on Psychological Stress Detection Using Biosignals 利用生物信号检测心理压力综述

https://ieeexplore.ieee.org/document/8758154 问题背景 和压力相关的生物信号包括&#xff1a; 生理&#xff1a;EEG、心电图、EDA、肌电图物理测量&#xff1a;呼吸频率、言语、皮肤温度、瞳孔大小、眼睛活动 压力的维度&#xff1a;心理、行为和生理 压力体验与反馈 下…

【VI/VIM】基本操作备忘录

简介 新建/打开文件 工作模式 常用命令 移动命令 文本选中 撤销、删除 复制粘贴 替换 缩排 查找 替换 插入 分屏 练习

API请求报错 Required request body is missing问题解决

背景 在进行调用的时候&#xff0c;加载方法&#xff0c;提示以下错误 错误信息如下&#xff1a; {"code": 10001,"msg": "Required request body is missing: XXX","data": null,"extra": null }Required request body…

【热门话题】探索与心得:深入体验Microsoft Edge浏览器

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 探索与心得&#xff1a;深入体验Microsoft Edge浏览器一、Edge浏览器概述1.1 发…

从零开始搭建网站(第二天)

今天把之前的htmlcssjs项目迁移过来&#xff0c;直接使用tspiniavue3vite组合&#xff0c;搭建过程可以看从零开始搭建性能完备的网站-思路过程&#xff08;1&#xff09;_自己架设一个芯参数网站-CSDN博客。之后安装一下volar扩展。迁移过来使用Vue重构时发现之前使用的左右两…

C++从入门到精通——内部类和匿名类

内部类和匿名类 前言一、内部类的概念示例 二、内部类的特性三、匿名类的概念示例 四、匿名类的特性总结 前言 内部类是定义在另一个类内部的类&#xff0c;它可以访问外部类的私有成员。匿名类是没有名字的类&#xff0c;通常用于一次性使用的简单对象创建&#xff0c;可以直…

ubuntu20.04安装+ros-noetic安装+内网穿透frp

刷机后的系统安装 ubuntu20.04安装安装ros-noetic安装各种必要的插件安装vscode内网穿透连接实验室主机配置frpc和frps文件运行完成自动化部署免密登录linux的免密登录windows上的免密登录 内网穿透的参考链接&#xff1a;如何优雅地访问远程主机&#xff1f;SSH与frp内网穿透配…

【刷题篇】回溯算法(五)

文章目录 1、N皇后2、有效的数独3、解数独4、单词搜索5、黄金矿工 1、N皇后 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你…

Android自带模拟器如何获得ROOT权限

如果在模拟器中不能切换到root权限&#xff0c;很可能是镜像使用的不对。 一.选择镜像标准&#xff1a; 1.运行在PC端选X86_64镜像&#xff0c;才能流畅运行 2.不带google api的镜像 二.步骤 在虚拟机管理器中新建AVD&#xff0c;并下载符合要求的镜像文件 三.验证

【多线程学习】深入探究阻塞队列与生产者消费者模型和线程池常见面试题

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

中医药性笔记

目录 当归黄芪党参白术甘草茯苓半夏陈皮 当归 补血。 当归&#xff0c;腾讯医典 黄芪 土金之药。 补中气的同时补肺气。益卫固表、利水消肿、 腾讯医典黄芪 党参 土金之药。健脾益肺&#xff0c;生津养血。 党参补气之力弱于人参、用于脾肺气虚的轻症。 党参、腾讯…

全网最新的迅雷网盘拉新流程一览,碎片时间就能做的副业

有没有想做副业&#xff0c;又担心休息时间不够的朋友&#xff1f;有没有既想增加收入又不希望工作太累的朋友&#xff1f;如果你也有以上顾虑&#xff0c;不用担心&#xff0c;这个近几年的热门副业——迅雷网盘拉新项目就非常适合你&#xff01;网盘拉新是平台为了扩大用户群…

【python】一文搞懂序列、列表、元组、集合、字典区别及其应用

【python】一文搞懂序列、列表、元组、集合、字典区别及其应用 【先赞后看养成习惯】求点赞+关注+收藏😀 序列介绍 1、定义:序列(sequence)是一种可迭代的、元素有序的容器类型的数据。 2、序列包括列表(list)、字符串(str)、元组(tuple)和字节序列(bytes)等。 …

Liunx挂载硬件设备

一、mount命令&#xff08;用于挂载文件系统&#xff09; &#xff08;一&#xff09;语法格式&#xff1a;mount 参数 源设备路径 目的路径 &#xff08;二&#xff09;参数 1、-t&#xff1a;指定挂载的文件系统 &#xff08;1&#xff09;iso9660&#xff1a;光盘或光盘…

[vapkg]解决vcpkg下载缓慢的问题

在我们执行vcpkg install some_project之后&#xff0c;我们经常会遇见界面停留在Downloading某个依赖上面&#xff0c;这时我们可以直接把那个下载链接复制下来&#xff0c;然后在外面用浏览器或别的下载工具自己下载&#xff0c;接着&#xff0c;去\vcpkg\downloads\temp这个…

iOS开发 刻度盘 仪表盘,圆点按钮滑动控制,渐变色

最近项目需要&#xff0c;想做一个渐变色的刻度盘&#xff0c;圆形按钮滑动控制&#xff0c;所以 用oc写了一下&#xff0c;代码没附上&#xff0c;想看代码可以私信联系&#xff0c;效果如下图。 部分代码 self.drawCenter CGPointMake(self.frame.size.width / 2.0, self.f…

[大模型]TransNormerLLM-7B 接入 LangChain 搭建知识库助手

TransNormerLLM-7B 接入 LangChain 搭建知识库助手 环境准备 在 autodl 平台中租赁一个 3090/4090 等 24G 显存的显卡机器&#xff0c;如下图所示镜像选择 PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8 接下来打开刚刚租用服务器的 JupyterLab&#xff0c;并且打开其…