Uva 489 Hangman Judge

紫書第四章例題,題目很簡單。

關鍵是題意的理解,一個猜對的字母再出現一次,算錯。這個原題裏描述我沒有找到,但是紫書裏寫了。

我用了set,也是比較方便的。


#include<bits/stdc++.h>
using namespace std;
set<char> S;
char ans[10000],guess[10000];
int indexx,length_ans,length_guess,cnt,flag;//flag爲-1代表輸了,0代表棄權,1代表贏了
int main(void)
{
    // freopen("d:\\out.txt","w",stdout);
    while(scanf("%d",&indexx))
    {
        S.clear();
        cnt=0;
        flag=1;//初始化能贏
        if(indexx==-1)
            break;
        else
            printf("Round %d\n",indexx);
        scanf("%s",ans);
        scanf("%s",guess);
        length_ans=strlen(ans);
        length_guess=strlen(guess);
        for(int i=0;i<length_ans;i++)
        {
            S.insert(ans[i]);
        }
        for(int i=0;i<length_guess;i++)
        {
            if(S.empty())
            {
                break;
            }
            if(S.count(guess[i]))
            {
                S.erase(guess[i]);
            }
            else
            {
                cnt++;
            }
            if(cnt>=7)
            {
                flag=-1;
                break;
            }
        }
        if((flag==1)&&(!S.empty()))
           flag=0;
        if(flag==1)
            printf("You win.\n");
        if(flag==0)
            printf("You chickened out.\n");
        if(flag==-1)
            printf("You lose.\n");
    }
    return 0;
}

發佈了104 篇原創文章 · 獲贊 12 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章