c++猜数字游戏(电脑来猜)c++程序设计原理与实践习题4.4
来源:互联网 发布:阿里云是iaas还是saas 编辑:程序博客网 时间:2024/06/08 16:39
编写一个猜数游戏程序。用户给出一个 1 到 100 之间的整数,程序通过提问来猜测用户所想的数是什么(例如:”你的数小于50吗?“),程序应该能够用不超过7个问题来确定这个数。提示:使用 < 和 <= 运算符以及 if-else 语句编写程序。
以上是原题目,开始一直没思路,怎么在7个问题内让电脑猜出我心中所想的数字呢。由是打开了百度,心想看看别人的源码就行了(就是想快点看下一章)。结果查了半天都是让用户来猜程序设置的随机数,这不符合题意呀!也可能我搜索的方法不对,但就是找不到正确的答案。最后自己 误打误撞的写出了暂时满意的答案,在6个问题内就能求出你心中所想的数,下面是代码(如果大家发现错误或有更好的方法希望能留言提醒一下,谢谢了):
温馨提醒:一直没思路的时候不要烦躁,先让自己静下来, 可以先在网上提问,然后跳过这一题,去看后面的,说不定过了一会你就想出解决办法了,一直想不通的就到网上多处问一问,有时候只在一个地方问可能没人马上回答吧。
#include <iostream>#include <string>#include <vector>#include <algorithm>#include <cmath>using namespace std; //这句以及上面包函的库文件,我不明白什么意思,有的库文件应该不用包涵进来,我只是照抄书上的。int main(){ cout<< "请在心中默想一个1——100的整数,我能在6个问题之内猜出这个数是什么:\n"; cout<< "想好了就输入y开始游戏吧,q退出。\n"; string zf; //我声明了string类型来存放输入的字符,当然用char类型也行。 int number; //电脑猜测的数字,后面循环里有用到,当然也可以声明在循环体内。 while(cin>>zf) { int min_shu=1; // 1是初始最小数。 int max_shu=100; // 100是初始最大数。 if(zf == "q") return 0; // return 返回值0,退出了main()函数。 else if(zf == "y") { int jishu=1; // 计数用的,6个问题以内嘛。 while(true) // 条件一直为真,死循环,能用break跳出循环,或用return跳出整个函数。 { number= (min_shu+max_shu)/2; // 最小数和最大数的和除2 ,意思就是取它们的中间值。 cout<< "\n是"<<number<<"吗?(第"<<jishu<<"个问题)大了输入b,小了输入s,正确输入y。(输入无效字符不计次)"; cin>>zf; if(zf == "b") { max_shu = number-1; //如果是大了,那最大值至少比目前的数小1。 jishu++; //回答次数加1 ,如果你回答了电脑6次问题,电脑还没有猜对,那电脑就输了。 } if(zf == "s") { min_shu = number+1; //如果是小了,那最小值至少比目前的数大1。 jishu++; //同上面,计数加1 } if(zf == "y") { cout<< "\n哈哈,我猜到了吧!\n" << "输入y再玩一次,q退出\n"; break; } if(jishu == 7) { cout<< "\n你默想的数一定是"<<(min_shu+max_shu)/2 << "\n输入y再玩一次,q退出\n"; break; } } } else cout<< "输入无效,请重新选择(y开始,q退出):\n"; }}
一段代码对大家也没什么意义,写出来只是想 提醒自己和 努力自学编程的小伙伴们 ,遇到问题要静下心,不要钻牛角尖。充分利用网络和一切自己能想到的资源,不求快,不求多,只要每天都进步一点点 就足够了。 我学这个也只是自娱自乐,并没有想短时间内就能靠这个吃饭,但理想总要是丰满的, 我坚信总有一天自己也能变成高手的,加油!
0 0
- c++猜数字游戏(电脑来猜)c++程序设计原理与实践习题4.4
- 【C语言】“猜数字”游戏来了!
- 《C语言及程序设计》实践项目——数字游戏
- 《C++程序设计原理与实践》习题4.3
- 【C++】猜数字游戏
- 【C】猜数字游戏
- c猜数字游戏
- c++石头-剪刀-布游戏c++程序设计原理与实践第4章习题
- 公牛和母牛竞猜游戏《c++程序设计原理与实践》第5章习题12,13
- 猜数字游戏(c语言)
- 【C语言】 猜数字游戏
- C语言 猜数字游戏
- 【C语言】猜数字游戏
- C语言 猜数字游戏
- C语言 猜数字游戏
- c代码:猜数字游戏
- 猜数字游戏 C语言
- C/C++_猜数字游戏
- 行为型设计模式-命令模式
- 团体程序设计天梯赛L2-015 互评成绩
- 文件系统的特性与磁盘加密技术
- redistemplate api
- Linux运维第十三讲
- c++猜数字游戏(电脑来猜)c++程序设计原理与实践习题4.4
- KeyCode大全
- 团体程序设计天梯赛L2-016 愿天下有情人都是失散多年的兄妹
- php 变量
- PAT甲级1064. Complete Binary Search Tree (30)
- Java高并发程序设计笔记(四)之线程池
- 01-复杂度2 Maximum Subsequence Sum (25分)
- 浅谈双连通分量、强连通分量
- 遍历查找子控件