#include<stdio.h>
#include<string.h>
#define maxn 15 //比原写者多了几两个全局变量 ,义在取代作者在以此循环一次便计算一次数组的数量
char A[maxn],B[maxn];
int change,a,b,q;
int win,lose;
int
gues(char ch)
{
int bad=1;
for(int i=0;i<a;i++)
if(A[i]==ch) {q--; A[i]=' '; bad=0;}
if(bad) change--;
if(!change) lose=1;
if(!q) win=1;
}
int
main()
{
int rn;
scanf("%d",&rn);
while(rn!=-1&&scanf("%s %s",A,B)==2) /*原写者是scanf("%d%s%s",&rnd,s,s2)==3&&rn!=-1,
在此本博主发现必须全部输完一组数据才能结束,而不能像样例一样,读到rnd==-1时便结束*/
{
win=0,lose=0;
q=a=strlen(A),b=strlen(B);
change=7;
for(int i=0;i<b;i++)
{
gues(B[i]);
if(win||lose) break;
}
printf("Round %d\n",rn);
if(win) printf("You win\n");
else if(lose) printf("You lose\n");
else printf("You chickened out\n");
scanf("%d",&rn);
}
return 0;
}
本程序是建立在你在看算法竞赛第二版入门经典的前提下的,此程序并非写者原程序,做了些改动,聚体问题已经在程序的注释里面标出来了