1、rand()生成随机数:

  • rand():产生一个随机数,返回介于0和之间的伪随机整数RAND_MAX(32767).
  • rand() 函数虽然可以产生一个随机数,但这不是真正意义的随机数,是一个伪随机数,

所谓的“伪随机数”指的并不是假的随机数,是通过一定的算法得到一种假想状态的随机数,计算机只能生成相对的随机数,而这些随机数既是随机的又是有规律的,一部分遵守一定规律,一部分则不遵守任何规律

  • rand()函数在使用的时候需调用srand(seed)函数,也就是提供一个种子,使用如果没用调用srand(),那么系统就会自动给seed赋值,即srand(1)。
  • 在调用rand()和srand()的时候需要引入<stdlib.h>头文件

2、rand()生成一点范围的随机数

在实际开发,我们往往需要的是一定范围内的随机数,那么我们常用的方法就是取余运算,在进行一个加法运算。

  • 想要产生一个0-99的随机数,那么用法如下:

int num = rand() % 100;

  • 想要产生一个1-100之间的随机数,用法如下:

int num = rand() % 100 +1

  • 想如果我们像产生一个80-120的随机数

int num = rand() % 41 +80

//用代码演示一下
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<windows.h>#include<stdlib.h>
int main(){for (int i = 0; i < 20; i++){int num = rand() % 41 + 80;printf("%d\t",num);}system("pause");return 0;
}
//运行结果为
80      97      100     94      102     101     119     82      105     108     86      99      114     97      119120     82      91      110     104     请按任意键继续. . .

3 srand()函数

  • srand()函数需要的头文件仍然是:<stdlib.h>
  • srand()函数原型:void srand (usigned int seed);
  • srand ()函数是初始化随机数生成器。伪随机数生成器使用作为seed传递的参数进行初始化。

如果使用相同的种子,rand()函数后面还会出现一样的随机数,上面我们提到默认的srand(1),直接使用1来初始化种子,得到的随机数还是伪随机。

  • 在实际开发中,我们可以用时间作为参数,只要每次播种的时间不同,那么生成的种子就不同,最终的随机数也就不同,通常我们采用
    <time.h> 头文件中的 time 函数即可得到一个精确到秒的时间作为种子。
//我们在代码中实现随机数结果
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<stdlib.h>
int main(){srand(time(0));for (int i = 0; i < 20; i++){int num = rand() % 41 + 80;printf("%d\t",num);}system("pause");return 0;
}
  • 第一次运行结果
103     95      113     118     89      91      83      92      99      92      117     97      91      82      9791      83      89      91      109     请按任意键继续. . .
  • 第二次运行结果
81      80      85      84      114     96      110     107     102     83      83      109     113     96      9082      105     102     81      114     请按任意键继续. . .

c语言rand()、srand()函数相关推荐

  1. C语言rand(),srand()函数真实性能分析

    一直听人说c标准库的rand(), random()随机数产生函数性能极差.一直信以为真,今天做实验,发现并非如此 实验结论如下: 1. 系统自带的rand()和random()函数性能极高,大约相当 ...

  2. C语言:srand函数与rand函数的使用(纯干货)【易懂】

    C语言:srand函数与rand函数的使用(纯干货)[易懂] 文章目录 C语言:srand函数与rand函数的使用(纯干货)[易懂] 一.rand() 二.srand() 三.time() 四.运用: ...

  3. 【C语言】随机数函数rand和srand

    文章目录 一.随机数函数 1.rand().srand() 2.time() 二.案例实现 1.案例描述 2.代码实现 一.随机数函数 1.rand().srand() C语言产生随机数要用到的函数是 ...

  4. C语言学习笔记07-2-循环的游戏实验:猜数字(附rand、srand函数说明)

    C语言猜数字游戏实验(07-1笔记的补充) 在C/C++编程练习中代码太多,不能明显体现有关分支.循环语句结构的实验变化,在此处单独归纳汇总一份我尝试过的三次猜数字游戏设计. 猜数字初版 #inclu ...

  5. rand在c语言那一个函数库,浅析C语言中的rand函数和srand函数(一)

    我们在编程实现算法的过程中,往往需要使用到随机数.由于计算机是一台以逻辑为基础的机器,没法做到真正的随机(大概量子计算机可以?).所以计算机生成的是伪随机数,供我们使用. 我们使用C语言的rand函数 ...

  6. C语言中随机数的生成(rand函数和srand函数)

    CSDN话题挑战赛第2期 参赛话题:学习笔记 学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程.这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路.学习之乐,独乐乐,不如众乐 ...

  7. C语言详解生成随机数的过程,time函数、时间戳timer、rand函数和srand函数,附猜数字小游戏

    第十一篇:随机数详解 一.准备工作(预备知识) 1.1.生成伪随机数(函数rand) 1.2.伪随机数"变成"随机数(函数time) 1.3.生成确定范围随机数 二.练手随机数经典 ...

  8. C语言之rand()和srand()函数

    1.rand().srand()函数介绍 srand 初始化随机种子,rand 产生随机数 定义函数:int rand(void) 函数功能:产生随机数 函数说明:rand的内部实现是用线性同余法做的 ...

  9. C语言 rand函数,srand函数 生成随机数用法详解

    与随机数有关的两个函数,srand() 和 rand(),这两个函数都包含"stdlib.h"头文件里 srand()函数是随机数发生器,使得每轮产生的随机数列都不相同.      ...

  10. C语言rand和srand函数的简单介绍和用法

    目录 介绍: 用法: 介绍: 在c语言中,我们想要在一个范围内随机生成一个数字,我们就需要用到rand函数,生成大小为0到32767的整数,但仅靠rand生成的数是伪随机的数,如下: 第一次运行n次: ...

最新文章

  1. Android studio中2种build.gradle文件介绍
  2. 使用Dependency Walkers来检查exe文件中缺少的dll
  3. Docker之tomcat和nginx的部署
  4. CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...
  5. log4j 标准配置模板:
  6. 为什么优酷站点限制不了_什么是站点可靠性工程师,为什么要考虑这个职业道路
  7. FOUND MODULE 所在的表及刪除不啟作用的INCLUDE
  8. Tomcat + Spring MVC + HttpClient:怎样使用PUT和PATCH方法传递数据
  9. java里面的内存机制_Stack vs. Heap:了解 Java 的内存分配机制
  10. 【Spring-AOP】Spring提供的AOP开发方式和底层AOP开发方式
  11. Excel技巧 一秒取消合并单元格,让你的取消合并操作简单快捷
  12. 时间计算题100道_上海六年级数学第二学期有理数加减混合计算题100道【含答案】...
  13. 配置有误:由于权限不足而无法读取配置文件
  14. Python爬虫爬取微博评论案例详解
  15. MacBook 安装 win10 系统的方法
  16. linux双系统启动引导,linux windows 双系统并存与启动引导
  17. OSChina 周五乱弹 —— 性感海星在线翘臀
  18. 5G+物联网商业模式促使物联网卡迎来增长新风口
  19. QQ邮箱/163邮箱等怎么代收微软@hotmail/@outlook的邮件
  20. DDOS和CC是什么

热门文章

  1. 【java】parseInt的用法
  2. matlab伪随机码,Matlab生成M序列的伪随机码
  3. 图像检测:深度学习基础
  4. spark提交命令中的jars设置方式
  5. jeeplus工作流版
  6. oracle 19c下载和安装教程(database和client)
  7. 上CNCCTV,在线看电视,听广播
  8. 【mysql】连表查询(内连接,左连接,右连接,全外连接)
  9. ssm框架与三层架构
  10. 七夕到了——属于程序员的浪漫