紫書第四章例題,題目很簡單。
關鍵是題意的理解,一個猜對的字母再出現一次,算錯。這個原題裏描述我沒有找到,但是紫書裏寫了。
我用了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;
}