UVA489 Hangman Judge(字符串处理)

来源:互联网 发布:螺纹钢理论重量表算法 编辑:程序博客网 时间:2024/06/08 16:22

题目描述:
这里写图片描述
这里写图片描述


题目大意就是先给一个单词,然后每次可以猜一个字母,如果给定单词里有那个字母,单词中的所有该字母都会显示出来,如果没有这个字母,机会就少一次,一共7次机会,错了7次即为失败, 而如果单词中所有字母都显示出来即为成功,其他则为放弃。

分析:
采用自顶向下的方式,模拟一下这个刽子手游戏的过程即可。

代码如下:

#include<cstdio>#include<cstring>using namespace std;const int maxn = 100;char s1[maxn], s2[maxn];int chance, left;int lose, win;void guess(char ch){    int bad=1;    for(int i=0; i<strlen(s1); i++)    {        if(ch == s1[i])        {            left--;            s1[i] = ' ';            bad = 0;        }    }    if(bad) chance--; //如果没有这个字母,则机会减一。    if(!chance) lose = 1; //如果7次机会没有了,则失败。    if(!left) win = 1; //如果都猜出来了,则为成功。}int main(){//  freopen("input.txt", "r", stdin);    int round;    while(scanf("%d", &round)!=EOF && round != -1)    {        chance = 7;        win = lose = 0;         scanf("%s%s",s1,s2);        left = strlen(s1);        for(int i=0; i<strlen(s2); i++)        {            guess(s2[i]);            if(win || lose) break;         }        printf("Round %d\n",round);        if(lose) printf("You lose.\n");        else if(win) printf("You win.\n");        else printf("You chickened out.\n");    }   } 
原创粉丝点击