IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言随机函数 -> 正文阅读

[C++知识库]C语言随机函数

1.用这俩rand(),srand() 函数要加头文件<stdlib.h>

2.用time()函数要加头文件<time.h>

int a;
a=rand(void)
//不需要参数但产生一次随机数以后,这个随机数就固定了,也就是每次打开程序都是哪一个数
//rand()会随机生成一个0~RAND_MAX之间的整数
 //RAND_MAX是<stdlib.h> 头文件中的一个宏,可以当作很大的数,用来指明rand函数返回的随机数的最大值

所以需要srand()函数重新播种,种子变化,每次产生的随机数都回变

意思是,好比你使用rand()函数

里面虽然没有参数,但你可以想象成里面是一种农作物的种子

你每次使用这个rand函数相当于播种一次这个农作物

然后产生的随机数都是这个农作物的成果---

然后你下一次还是这个种子,这样随机数还是上一次那个--毕竟种啥得啥嘛,种子也没换

这样就需要 srand 函数来换种子。

这个函数需要在rand函数前面--毕竟你得先换种子,才能播种嘛

void srand(unsigned int seed)
 ? ?//它需要一个unsigned int类型的参数
 ? ?//如果你想自己换
 ? ?void srand(n);//n为一个unsigned int类型的正整数
//表示出现的随机数不会小于n,但是这个数每次打开都是这个数
 ? ?//seed就是你自己设置的一个数,但是随机数嘛,你得让它自己换
 ? ?//这样我们就可以用到 time()函数---可以得到当前的时间(精确到秒)
//这样
 ? ?void ((unsigned)time(NULL))
 ? ? ? ?//time(NULL)-- 获取的是1970年1月1日到现在之间有多少秒
 ? ? ? ?//然后时间每时每刻都在变,所以随机数一直在变化
 ? ? ?  (unsigned)time(NULL)//这个是强制类型转换
 ? ? ? ?//将time返回值强行转换为unsigned int(可以简写为unsigned)类型

整体用法: ?
?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
 ? ?int a;//声明一个变量
 ? ?srand((unsigned)time(NULL));//随机产生个种子
 ? ?a = rand();//随机产生个随机数
 ? ?printf("%d\n", a);
 ? ?return 0;
}

生成一定范围的随机数

实际开发中,我们需要一定范围内的随机数---可以用取模(就是取余数)的方法

int a=rand()%10//产生0~9的随机数,
 ? ?//%n--就是产生0~n的随机数
 ? ?//%n+m--就是产生m~(n+m)的范围
 ? ?//例如:
 ? ?int a=rand()%21+10;
 ? ?//产生10~31的随机数

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 00:58:09  更:2022-02-19 00:59:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:03:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码