【C/C++】例题 4-2 刽子手游戏/算法竞赛入门经典/函数和递归
【题目】
猜单词游戏。
计算机想一个单词让你猜,你每次猜一个字母。
如果单词里有那个【字母】,【所有该字母会显示出来】。
如果没有那个字母,算猜错一次。【最多只能猜错六次】
猜一个已经猜过的字母也算错。
【样例输入】
1
cheese
chese
2
cheese
abcdefg
3
cheese
abcdefgij
-1
【样例输出】
Round 1
You win.
Round 2
You chickened out.
Round 3
You lose.
【思路】
为了实现“如果单词里有那个【字母】,【所有该字母会显示出来】。猜一个已经猜过的字母也算错。”的需求:
先看计算机的问题串中是否有这个字母,如果有,把所有这个字母都换成空格。
遍历串2的每一个字母,对于每一个字母,读取字母,看这个字母在串1中是否存在(遍历串1).再执行如上操作。
chickened out 和 win 的区别是 chickened out没有把问题串中所有字都覆盖到。尽管二者的错误都小于7.
【代码】
#include <iostream>
#include <cstdlib>
#include <string.h>
using namespace std;
const int maxn = 25;
char* message[] = {"You win.", "You lose.", "You chickened out."};
void guess(char a, char str[], int len, int& wrong)
{
//考虑读入进来的字符,是不是在题目串中存在
int flag = 0;
//char temp;
for (int i = 0; i < len; i++)
{
if (str[i] == a)
{
flag = 1;
break;
}
//cout << i <<"wrong" << wrong << endl;
}
//如果在题目串中存在,将所有字符换成空格
if (flag)
{
for (int i = 0; i < len; i++)
{
if (str[i] == a)
{
str[i] = ' ';
}
}
}
else
{
wrong++;
}
}
int main()
{
int n;
//数组s_ques为计算机猜测,s_ans为用户猜测
char s_ques[maxn], s_ans[maxn];
//考虑一组输入
while(scanf("%d%s%s",&n, &s_ques, &s_ans) == 3 && n != (-1))
{
int wrong = 0;
printf("Round %d\n", n);
int len1 = strlen(s_ques);
int len2 = strlen(s_ans);
for (int i = 0; i < len2; i++)
{
guess(s_ans[i], s_ques, len1, wrong);
}
int cnt = 0;
for (int i = 0; i < len1; i++)
{
if (s_ques[i] == ' ') cnt++;
}
if (wrong < 7 && cnt == len1)
{
cout << message[0] << endl;
}
else if (wrong > 6)
{
cout << message[1] << endl;
}
else
{
cout << message[2] << endl;
}
}
system("pause");
}
【C/C++】例题 4-2 刽子手游戏/算法竞赛入门经典/函数和递归的更多相关文章
- 【C/C++】例题5-4 反片语/算法竞赛入门经典/C++与STL入门/映射:map
本题是映射:map的例题. map:键值对. [题目] 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词. 在判断是否满足条件时,字母不分大小写,但在输出 ...
- (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO
http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...
- 算法竞赛入门经典+挑战编程+USACO
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...
- [刷题]算法竞赛入门经典 3-12/UVa11809
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa11809:Floating-Point Numbers 代码: //UVa11 ...
- [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include&l ...
- [刷题]算法竞赛入门经典 3-7/UVa1368 3-8/UVa202 3-9/UVa10340
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 都是<算法竞赛入门经典(第二版)>的题目,标题上没写(第二版) 题目:算法竞赛入门经典 3-7/UVa13 ...
- [刷题]算法竞赛入门经典 3-4/UVa455 3-5/UVa227 3-6/UVa232
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa455:Periodic Strings 代码: //UVa455 #inclu ...
- [刷题]算法竞赛入门经典 3-1/UVa1585 3-2/UVa1586 3-3/UVa1225
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO(我也是在网上找到的pdf,但不记得是从哪里搜刮到的了,就重新上传了一遍) PS:第一次写博客分享我的代码,不知道我对c ...
- 算法竞赛入门经典训练指南——UVA 11300 preading the Wealth
A Communist regime is trying to redistribute wealth in a village. They have have decided to sit ever ...
随机推荐
- 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍
目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...
- go微服务框架Kratos笔记(三)引入GORM框架
介绍 GORM是一个使用Go语言编写的ORM框架.中文文档齐全,对开发者友好,支持主流数据库. GORM官方文档 安装 go get -u github.com/jinzhu/gorm 在kratos ...
- Java 获取PDF数字签名证书信息
PDF文档中可添加数字签名,在添加签名前,需要准备可信任签名证书.对文档中已有的签名,可验证书签是否有效.也可通过一定方法来获取数字签名或者签名证书信息.下面以Java代码示例展示如何读取签名的证书信 ...
- python实现分水岭算法
目录: 问题:分水岭算法对图像分割很有作用,怎么把对象分割开来的?分水岭算法是比较完美的分割,跟前面的讲的轮廓不一样! (一)原理 (二)实现 (一)原理 opencv中的分水岭算法是基于距离变换的, ...
- Netcat基础使用
netcat命令选项 本文参考文章链接 本文参考文章链接1 本文参考文章链接2 本文参考文章链接3 常用命令选项 ## 网络模式和代理相关 -l 监听,作服务器.不填时作客户端. -u UDP模式.不 ...
- 搜索系统核心技术概述【1.5w字长文】
前排提示:本文为综述性文章,梳理搜索相关技术,如寻求前沿应用可简读或略过 搜索引擎介绍 搜索引擎(Search Engine),狭义来讲是基于软件技术开发的互联网数据查询系统,用户通过搜索引擎查询所需 ...
- [loj3301]魔法商店
令$A=\{a_{1},a_{2},...,a_{s}\}$,若$k\not\in A$,那么恰存在一个$A'\subseteq A$使得$c_{k}=\bigoplus_{x\in A'}c_{x} ...
- [atAGC048F]01 Record
先将这个序列翻转,贪心找到最长的'101010--'的形式的子序列并删除,重复此过程并记这些字符串长度依次为$l_{1},l_{2},...,l_{n}$,若最终还有字符剩余则一定无解 假设$S$中元 ...
- 抽象类和接口的区别详解、package和import
1.抽象类和接口以及抽象类和接口的区别. 1.1.抽象类的基础语法(见昨天笔记) 1.2.接口的基础语法 1.接口是一种"引用数据类型". 2.接口是完全抽象的. 3.接口怎么定义 ...
- 详解在Linux中安装配置MongoDB
最近在整理自己私人服务器上的各种阿猫阿狗,正好就顺手详细记录一下清理之后重装的步骤,今天先写点数据库的内容,关于在Linux中安装配置MongoDB 说实话为什么会装MongoDB呢,因为之前因为公司 ...