前言 (随机数和随机种子)

1.随机数

  • rand()

如同字面意思,生成随机数
rand() 产生一个00x7ffff,即032767之间的随机数

  • RAND_MAX:表示最大随机数,简而言之就是RAND_MAX==0x7ffff

这个随机数生成了10个,运行了两次,可以看出,两次结果都不变化,(多少次都不变化)

  • srand()

随机数种子
通常用srand((unsigned)time(0))或者srand((unsigned)time(NULL))
srand()一定要放在循环外面或者是循环调用的外面,否则的话得到的是相同的随机数。

1.srand((unsigned)time(0))

可以看出加入随机种子后每次运行完的序列不一样,体现了“随机性”。
2.srand((unsigned)time(NULL))

  • 1.要取得 [a,b) 的随机整数,使用(rand() % (b-a))+ a (结果值含a不含b)。

  • 2.要取得 [a,b] 的随机整数,使用(rand() % (b-a+1))+ a (结果值含a和b)。

  • 3.要取得 (a,b] 的随机整数,使用(rand() % (b-a))+ a + 1 (结果值不含a含b)。

可以看出随机数种子的意义就是让随机数每一轮产生不一样的数。

  • 重要点
    1.{0,1} 随机数(或0;或1)

  • a: rand()%2;

  • b: rand*2/RAND_MAX

产生[a,b]上的随机数 ((double)rand()/RAND_MAX)*(b-a) + a ,其中(double)rand()/RAND_MAX)可以得到一个0~1的随机数

1.rand()/RAND_MAX可表示为在[0,1]区间内的随机数
2.rand()/(RAND_MAX+1)可表示为在[0,1)区间内的随机数

猜硬币游戏

1.功能:

a.提供游戏指南
b.计算机随机产生正反面,让用户猜,报告对错结果
c.重复玩游戏过程,直到用户不想玩了为止

2.问题求解

进行结构化程序设计
自顶向下分解为(1)介绍指南;(2)猜结果

即两个函数
void prn_instruction(); 介绍
void play(); 猜结果

  • prn_instruction()
void prn_instruction()
{cout << "这是一个猜硬币正反面的游戏.\n";cout << "我会扔一个硬币,你来猜.\n";cout << "如果猜对了,你赢,否则我赢。\n";
}
  • play()
void play()
{ char flag = ‘y’;while ( flag == ‘Y’ || flag == ‘y’){ coin = 生成正反面;输入用户的猜测;if  (用户猜测 == coin) 报告本次猜测结果正确;else  报告本次猜测结果错误;询问是否继续游戏}
}

这里有三个问题:
(1)系统如何生成正反面,使计算机表达后“用户理解”;
(2)用户如何输入猜测,与系统一一对应;
(3)怎么判断游戏继续还是结束

  • 问题1:系统如何生成正反面,使计算机表达后“用户理解
    因为计算机只能生成数字,可以使用“1”和“0”表示正反面。所以这里就是使用某种方法使计算机生成数字。
    因此使用随机数【1】和【0】
    rand*2/RAND_MAX 生成0和1;
srand(time(NULL));
coin = rand() * 2 / RAND_MAX;
  • 问题2:用户如何输入猜测,与系统一一对应
    这里要保证用户只能输入0和1,无法输入其他的数字。
    因此需要使用get_call_from_user(),表示整数型,所以shi
    该函数接收用户输入的一个整型数。如果输入的数不是0或1,则重新输入,否则返回输入的值
int get_call_from_user()
{int guess;do{cout << "\n输入你的选择(0表示正面,1表示反面):";cin >> guess;} while (guess != 0 && guess != 1);return guess;
}
  • 问题3:怎么判断游戏继续还是结束

falg=y或Y

猜硬币游戏(c++语言)相关推荐

  1. c语言程序设计 猜数字,猜数字游戏c语言编程,c语言编程 编一个猜数字游戏

    c语言编程 编一个猜数字游戏 #include #include #include #include void main()/*主函数*/ { int a,b,times=0,i,j,guess=0, ...

  2. c语言猜单词游戏实验报告,猜单词游戏c语言源程序.doc

    猜单词游戏c语言源程序 包括程序及txt文档,希望可以对您有所帮助 #include #include #include #include #include #include #include voi ...

  3. c语言课题设计题目猜数字游戏,C语言课题设计报告(猜数字游戏)文档.doc

    C语言课题设计报告(猜数字游戏)文档 课 程 设 计 报 告 课程名称 C 语言课程设计 课题名称 猜数字游戏 专 业 电气工程及其自动化 班 级 1183 学 号 13 姓 名 鲁响 指导教师 王颖 ...

  4. c语言作业 猜数字游戏,C语言实现猜数字小游戏

    本文实例为大家分享了C语言猜数字的具体代码,供大家参考,具体内容如下 一.描述 猜数字游戏. 二. 程序 使用srand((unsigned)time(NULL)),产生随机数种子. int rand ...

  5. 猜数游戏c语言程序流程图,C语言程序设计之猜数游戏.ppt

    C语言程序设计之猜数游戏 编程人员演示 C语言程序设计之猜数游戏 --软工一班 第二小组 程序功能简介 程序思路导引 程序流程图 程序N-S图 组员名单及其具体分工 end page 程序功能简介(1 ...

  6. 猜数字游戏c语言原理二进制,第一个c语言实现的猜数字游戏

    #include #include #include #include #include #include #include void output() { printf("******** ...

  7. 猜数游戏c语言程序流程图,C语言猜数游戏代码

    写在前面:本代码使用了随机数+循环体+时间戳等初等代码,仅供小白交流,参考!#include #include #include #include int menu()                 ...

  8. 与猜数问题有关的游戏C语言,猜数字游戏(C语言版)

    最近在研究算法的问题 貌似这是工作中的一个短板 当然 这跟我从事的工作有关 一般不容易接触太多算法问题 .很多时候接触都是一些CRUD  ! 今天空闲了会 写了一个猜数字的游戏  原理很简单 直接上代 ...

  9. 猜数游戏c语言编程while,【游戏编程】猜数字游戏(C语言)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //此游戏规则为:系统随机生成一个整数,然后要你去猜它.系统会提示你是大了还是小了.游戏结束后会生成排行榜,有记录时间 #include #include ...

最新文章

  1. c++ lambda函数_C++ Lambda表达式
  2. beanutils工具类_16 个超级实用的 Java 工具类!
  3. python【力扣LeetCode算法题库】28-实现 strStr()
  4. mac下安装redis
  5. C++开发中的预处理器
  6. Day 62 Django第三天
  7. Android 使用本地应用在线播放流媒体文件
  8. python中字符集
  9. 通过js适配不同的屏幕大小
  10. Android 8.0 学习(14)---Android8.0适配分析
  11. Java 内存溢出(java.lang.OutOfMemoryError)解决
  12. AutoCAD2012从入门到精通中文视频教程 第14课 综合实例(个人收藏)
  13. 浅谈数据监控数据分析
  14. android编程微博的发送,基于Android手机微博客户端的开发.doc
  15. 【中间件】pika安装及性能测试
  16. DASH Nginx Webrtc Quic学习资料超链
  17. [差分 上下界最大流] SRM 694 div1 SRMDiv0Easy
  18. yeezy350灰橙_yeezy新灰橙会氧化吗 椰子350新灰橙氧化怎么办
  19. 启动项目报错404 Not Found nginx/1.21.5-2022-6-8
  20. vs2015 +qt basler相机添加pylon配置

热门文章

  1. onedrive电脑手机不同步_Win10 OneDrive 无法同步文件怎么办?一个命令搞定
  2. visual studio STM32上位机开发 LED上位机
  3. 一、三次握手【绿皮书很重要】
  4. 移动开发第二次作业——实现顶部悬浮的滑动列表
  5. 自学Python 29 模块架构
  6. sap进阶系列(3):第一篇:财务总览之总账、应收和应付
  7. 汇编语言——第10章 CALL和RET指令
  8. 基于Python的数据采集系统
  9. 微软azure云在Ubuntu Core中的应用
  10. 房贷15年提前10年还清划算吗?