【题目】

猜单词游戏。

计算机想一个单词让你猜,你每次猜一个字母。

如果单词里有那个【字母】,【所有该字母会显示出来】。

如果没有那个字母,算猜错一次。【最多只能猜错六次】

猜一个已经猜过的字母也算错。

【样例输入】

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 刽子手游戏/算法竞赛入门经典/函数和递归的更多相关文章

  1. 【C/C++】例题5-4 反片语/算法竞赛入门经典/C++与STL入门/映射:map

    本题是映射:map的例题. map:键值对. [题目] 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词. 在判断是否满足条件时,字母不分大小写,但在输出 ...

  2. (Step1-500题)UVaOJ+算法竞赛入门经典+挑战编程+USACO

    http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年 ...

  3. 算法竞赛入门经典+挑战编程+USACO

    下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinej ...

  4. [刷题]算法竞赛入门经典 3-12/UVa11809

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa11809:Floating-Point Numbers 代码: //UVa11 ...

  5. [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include&l ...

  6. [刷题]算法竞赛入门经典 3-7/UVa1368 3-8/UVa202 3-9/UVa10340

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 都是<算法竞赛入门经典(第二版)>的题目,标题上没写(第二版) 题目:算法竞赛入门经典 3-7/UVa13 ...

  7. [刷题]算法竞赛入门经典 3-4/UVa455 3-5/UVa227 3-6/UVa232

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa455:Periodic Strings 代码: //UVa455 #inclu ...

  8. [刷题]算法竞赛入门经典 3-1/UVa1585 3-2/UVa1586 3-3/UVa1225

    书上具体所有题目:http://pan.baidu.com/s/1hssH0KO(我也是在网上找到的pdf,但不记得是从哪里搜刮到的了,就重新上传了一遍) PS:第一次写博客分享我的代码,不知道我对c ...

  9. 算法竞赛入门经典训练指南——UVA 11300 preading the Wealth

    A Communist regime is trying to redistribute wealth in a village. They have have decided to sit ever ...

随机推荐

  1. sqlalchemy flush commit

    https://segmentfault.com/q/1010000000698181 flush 将sql发送到内存 commit 真正提交

  2. Navicat15最新版本破解 亲测可用!!!(Navicat Premium 注册出现 No All Pattern Found! File Already Patched)

    1.下载Navicat Premium官网https://www.navicat.com.cn/下载最新版本下载安装 2.本人网盘链接:https://pan.baidu.com/s/1ncSaxId ...

  3. 第六周PTA笔记 括号匹配调整+堆放石子+最大积分+168

    括号匹配调整 如果通过插入" +"和" 1"可以从中得到格式正确的数学表达式,则将带括号的序列称为正确的. 例如,序列 "(())()",& ...

  4. request模块做post请求时,body为json格式,并且带有中文,如何请求

    后台接口只能解析json,并且一定要是中文才能解析出来,如果是unicode编码的中文则会报错 看requests的源码.以下为解决方法: #将requests库中的models.py文件中的第461 ...

  5. [atARC096F]Sweet Alchemy

    给定一棵有根树,记$f_{i}$表示$i$的父亲,每一个点有一个代价$c_{i}$ 给定常数$D$和$X$,再给每个点赋一个权值$v_{i}$($v_{i}\ge 0$),满足以下条件下最大化$\su ...

  6. processon刷文件的骚操作

    https://github.com/ilikly/ProcessOnRegister用法自己看说明哈,群友亲测可用,而且也给别人用了...缺点是每轮都需要手动操作一下,并且需要俩微信号

  7. 解决Windows7、Windows10 ping不通的问题

    在VLAN交换机网络下面不能访问Windows10或者Windows7共享.ping不通问题,关闭防火墙发现能ping通了共享也正常了. 但是关闭防火墙将给电脑系统留下安全隐患.不怕麻烦的可以继续往下 ...

  8. Python之阶乘代码

    #coding=utf-8 while True:     num = int(input("请输入要阶乘的正整数数字,按负数退出:"))     jiec=1     if nu ...

  9. 一些 tips

    在本博客中,一般写题解的题都是我认为比较有价值的题,然而我还做过一些有一定价值,但并没有达到值得写一篇题解的程度,故将这些题目总结出的套路用一句话概括在这里: 当然如果看到我太久不更请在评论区里催我一 ...

  10. [NOI2021] 量子通信

    嗯. NOI2021最白给的一题. PS:很后悔没打同步赛,少了一张同步赛Ag 考虑加黑的256位01串,我们思考一下. 因为\(k\)小于16,所以我们直接分成16块.所以一定可以的绝对有一块是完全 ...