1. 随机数概述

编写程序过程中,我们经常需要产生一些随机数。随机数在程序中分为两种:

1. 真随机数:完全没有规则,无法预测接下来要产生的数。

2. 伪随机数:通过一些预先设定好的规则产生不能简单预测的数。

当然,我们在程序中使用的随机数主要是伪随机,一般场景下,伪随机数能够满足我们大部分的场景了。本篇文章给大家介绍下,如何在C语言中产生一个伪随机数。

伪随机数在C语言中产生分为两个步骤:

1. 设置随机数种子。

2. 获得随机数。

设置随机数种子和获得随机数,我们需要使用两个函数。srand 函数rand 函数。使用这两个函数需要导入头文件:#include

2. srand 函数用法

设置随机数种子时,我们一般会用时间值作为种子。这是因为时间值一直都在变化。我们使用 time 函数获得当前时间值,使用该函数需要先导入头文件 #include 。

打印出来的是一串数字,并不是我们常见的时间格式。Time 函数主要用于获得从 1970 年 1 月 1日0时 0分0秒到现在经历的秒数。时间一直在变,所以该函数可作为一直在改变的随机数种子。

所以,srand 函数的一个常用的用法就是:

srand 的要求的参数是 unsigned int,所以需要将 time 函数返回的结果强制转换成 unsigned int 类型。

3. rand 函数使用

设置好随机数种子,rand 函数就可以根据该值来产生随机数了。在 windows 的 vs 2019 平台上,默认该函数会产生一个 0 到 32767 之间的随机数。演示代码如下:

但是实际的场景是,我们希望产生一个指定范围内的随机数。此时,我们可以让随机产生数进行取余运算符,折算成指定范围。例如:我们要产生 1-100之间的随机数,可进行如下代码编写:

1. rand() % 100 会产生一个 0-99之间的数字。

2. rand() % 100 + 1 会产生一个 1-100之间的数字、

4. 随机数使用案例

我们下面做一个练习,创建一个包含10个元素的数组,使用 for 循环产生 10 个 1-10之间的随机数存储到数组中,并打印输出。

注意:随机数种子设置一次即可。

c语言 rand_C语言随机数相关推荐

  1. c语言输出字母随机数,你好,怎样用c语言输出一个1到100的随机数

    你好,怎样用c语言输出一个1到100的随机数以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 你好,怎样用c语言输出一个1 ...

  2. c语言中有关随机数的程序,C语言中随机数相关问题

    用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand ...

  3. C语言:生成随机数(并非固定的随机数)——rand()、srand()

    C语言:生成随机数 1.rand() 函数 2.srand() 函数 3.生成一定范围内的随机数 在实际编程中,我们经常需要生成随机数. 1.rand() 函数 在C语言中,我们一般使用 <st ...

  4. *C语言如何使用随机数?

    C语言如何使用随机数? 功能介绍 推送一些C语言方面的知识,提供C语言/C++语言资料,讨论和学习C语言/C++编程知识.给学习C语言的同学们一些帮助. 随机数的使用,是不少在学C语言过程中进行一些小 ...

  5. C语言中生成随机数函数

    文章目录 前言 一.产生随机数 二.具体分析 1.rand函数 (1)范围 (2)对应头文件 2.srand函数 3.整合 总结 前言 本文主要详细介绍如何在C语言中生成随机数. 一.产生随机数 我们 ...

  6. 厦门理工计算机课设,厦门理工学院11级C语言C语言程序设计课程设计报告

    <厦门理工学院11级C语言C语言程序设计课程设计报告>由会员分享,可在线阅读,更多相关<厦门理工学院11级C语言C语言程序设计课程设计报告(25页珍藏版)>请在人人文库网上搜索 ...

  7. 为什么我们需要一门新语言——Go语言

    编程语言已经非常多,偏性能敏感的编译型语言有 C.C++.Java.C#.Delphi和Objective-C等,偏快速业务开发的动态解析型语言有 PHP.Python.Perl.Ruby.JavaS ...

  8. 职工信息管理程序设计c语言,C语言程序设计职工信息管理系统.docx

    C语言程序设计职工信息管理系统.docx 1 数信学院数信学院 课程设计报告课程设计报告 课程名称课程名称C C 语言程序设计语言程序设计_ _ 题目名称题目名称职工信息管理系统职工信息管理系统 学生 ...

  9. c语言 python-C语言、Java语言和python语言的区别在哪里

    原标题:C语言.Java语言和python语言的区别在哪里 我们经常听到C语言.Java语言和python语言,那么这三者的区别在哪里呢?随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,随 ...

最新文章

  1. 1、时间、FHS 学习笔记
  2. centos7 使用无线wifi连接
  3. python 网络编程第二版
  4. ASP处理多关键词查询实例代码
  5. Android Studio 多渠道打包、自动版本号及 gradlew 命令的基本使用
  6. word List20
  7. uniapp动态修改样式_uniapp样式动态绑定
  8. VS2008找不到MFC90d.dll错误解决方法
  9. 统计文件大小与文件行数
  10. matlab利用工作区的变量画图,在使用MATLAB“绘图”选项卡中的命令按钮绘图之前,需要( )。 答案:在工作区中选择绘图变量...
  11. 微信跳wap php_微信跳转wap外部浏览器接口如何实现
  12. 训练集和测试集的区别
  13. 如何在zencart里实现多标签标签云效果
  14. 北京招聘 | 京东广告质量部:算法实习生、算法工程师校招
  15. Vue中使用pdfJs预览PDF、图片
  16. 哪个服务器开了无限火力,国服无限火力已经开放入口?有玩家已经提前卡进无限火力模式...
  17. 了解到的生二孩最好的理由
  18. 十字军之王3Crusader Kings III mac中文
  19. 王阳明心学:此心光明,夫复何言
  20. beyond compare 中文乱码问题解决方法

热门文章

  1. Yarn资源分配示例
  2. 关键字提取_Excel根据2个关键字,批量提取字符
  3. 做面板数据分位数回归模型_面板数据门限回归模型
  4. android左右旋转动画效果图,Android新姿势:3D翻转效果原理
  5. 如何解决连接不上us.archive.ubuntu.com
  6. Caffe 编译错误记录
  7. faster_rcnn c++版本的 caffe 封装(1)
  8. CMake Error include could not find load file: AwsCFlags 解決辦法
  9. ionic 状态栏显示异常 statusBar
  10. 关于ASP.NET未能映射路径问题