C语言再学习 -- 随机数函数
参看:C++中随机函数rand()和srand()的用法
rand ()函数:可以用来获得一个随机数
所在头文件: stdlib.h
函数说明 :
rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定的范围里可看成是随机的。rand()返回一随机数值的范围在0至RAND_MAX 间。RAND_MAX的范围最少是在32767之间(int)。用unsigned int 双字节是65535,四字节是4294967295的整数范围。0~RAND_MAX每个数字被选中的机率是相同的。用户未设定随机数种子时,系统默认的随机数种子为1。rand()产生的是伪随机数字,每次执行时是相同的;若要不同,用函数srand()初始化它。
srand ()函数:可以用来设置随机数的种子
所在头文件: stdlib.h
函数说明:
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用time(0)的返回值或NULL来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
time ()函数:可以返回系统时间
所在头文件: time.h
函数说明:
获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。
参看:Linux time()函数
rand()和srand()要一起使用,其中srand()用来初始化随机数种子,rand()用来产生随机数。
因为默认情况下随机数种子为1,而相同的随机数种子产生的随机数是一样的,失去了随机性的意义,所以为使每次得到的随机数不一样,用函数srand()初始化随机数种子。srand()的参数,用time函数值(即当前时间),因为两次调用rand()函数的时间通常是不同的,这样就可以保证随机性了。
/*1--100 rand()%100+1 随机数输入一个数字 与随机数比较猜大了猜小了猜对了*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{ int num=0,num1=0;srand((unsigned int)time(0)); //随机函数num1=rand() % 100+1; // 取余为 0--99 +1while(1){printf("请输入一个数:"); //放到循环里面scanf("%d",&num);if(num>num1){<span style="white-space:pre"> </span>printf("猜大了\n");}else if (num==num1) {printf("猜对了\n");break;}else{printf("猜小了\n");}}return 0;
}
随机数【15 ~ 18】:
rand()%(18-5+1)+15
C语言再学习 -- 随机数函数相关推荐
- C语言再学习 -- 时间函数
在软件设计中经常会用到关于时间的处理,用来计算语句.函数的执行时间,这时就需要精确到毫秒甚至是微妙的时间.我们首先来介绍一下,时间单位: 时间单位还有:秒(s).毫秒(ms).微秒 (μs).纳秒(n ...
- C语言再学习 -- 关键字return和exit ()函数
终于到了最后一个关键字 return 了.感觉时间过的飞快,转眼间又是一年,如果时间可以 return 就好了. 一.return 介绍 参看:C语言中return 用法 1.含义: return 表 ...
- C语言再学习 -- 字符串和字符串函数
最近身体很不给力,很乏累!白天没精神,晚上睡不着,心情还很烦躁.看书都有点看不下去的样子,到了C语言最难掌握的部分了,数组.指针.字符串.硬着头皮看书总结吧. 一.字符串 1.字符串介绍 字符串是以空 ...
- C语言再学习 -- 关键字const
const 关键字其实我们并不陌生,之前有讲过const修饰数组和指针.现在来详细介绍这个关键字. 参看:[C/C++和指针]著名的<const的思考> 一.const 介绍 1.cons ...
- C语言再学习 -- 存储类型关键字
定义: 是对声明的实现或者实例化.连接器(linker)需要它(定义)来引用内存实体.与上面的声明相应的定义如下:参看:C语言再学习 -- 存储类.链接 C语言中有 5 个作为存储类说明符的关键字,分 ...
- C语言再学习--关键字
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/53021879 C语言一共有32个关键字,如下表所示: 关键字 说明 auto ...
- C语言再学习 -- 再论内存管理
之前有总结过内存管理,参看:C语言再学习 -- 内存管理 但现在看来,缺少示例.从新再写一篇文章,着重介绍常见内存错误.跨函数使用存储区.开始吧,再论内存管理!! 发生内存错误是件非常麻烦的事情.编译 ...
- C语言再学习 -- 详解C++/C 面试题 2
(经典)C语言测试:想成为嵌入式程序员应知道的0x10个基本问题. 参看:嵌入式程序员面试问题集锦 1.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define ...
- C语言再学习 -- 详解C++/C 面试题 1
参看:<高质量C++ C编程指南>.林锐 对这篇文章记忆犹新,因为之前找工作面试的时候,遇到过一家公司就是用的这套面试题.现在就结合考查的知识点和我总结完 C 语言再学习后的深入理解,来详 ...
最新文章
- webpack4.0--如何安装和配置(一)
- 达特茅斯计算机专业师资力量如何,达特茅斯学院计算机科学computer science专业排名第126~150名(2020THE泰晤士高等教育世界大学排名)...
- 【项目实战】基于随机森林算法的房屋价格预测模型
- rsync 服务与配置文档
- 石头剪刀布python代码_python实现石头剪刀布程序
- AOJ 6.Hero In Maze
- SSH2 后端编程思路总结
- 如何表达清楚一个程序:模块化设计
- 使用AltSearch格式化Kindle读书笔记
- 年底知识「大甩卖」,知识付费这杯羹还有的分吗?
- python中sys路径_Python sys.path用法及代码示例
- 在LINUX环境下怎样设置无线网络配置
- 物联网离线语音控制智能家居系统设计(三):ESP8266(Arduino IDE)连接阿里云物联网平台
- 中国历史上最美的十首古诗词,美到了极致
- opencv获取设备ID和名称
- 计算机视觉最新进展概览(2021年8月1日到2021年8月7日)
- 同学录退出了历史舞台了吗?
- Java中的枚举类是什么?enum关键字怎么使用?
- 免费网盘如何选择@2020年
- 极品,git简介,安装,方法