UVa 489,紫书P79,刽子手游戏

题目链接:https://uva.onlinejudge.org/external/4/489.pdf

这个题很像之前的一个拓扑排序的题目,思路类似咯。

程序模块化:

每次判断一个字母,lose,win确定就直接退出。

小技巧:

你可以用数组guess[]记录每个字母是否访问过。要是已经访问过,counts++,算是一种错误。

这里汝佳的小技巧是,每次把相同的字符赋值为‘ ’,记录一下str1的长度,查完str1就win。否则就是You chickened out.

#include <stdio.h>
#include <string.h> int win ,lose;
int left;
int counts = ;
char str1[],str2[]; void guess(char ch)
{
bool flag = false;
for(int i=;i<strlen(str1);i++)
{
if(ch==str1[i])
{
str1[i] = ' ';
flag = true;
left--;
}
}
if(!flag) counts++;
if(counts>) lose = ;
if(left==) win = ;
} int main()
{
freopen("input.txt","r",stdin);
int cases;
while(scanf("%d",&cases))
{
counts = ;
if(cases==-) break;
printf("Round %d\n",cases);
scanf("%s%s",str1,str2);
win = lose = ; left = strlen(str1);
for(int i=;i<strlen(str2);i++)
{
guess(str2[i]);
if(win||lose)
break;
} if(win) printf("You win.\n");
else if(lose) printf("You lose.\n");
else printf("You chickened out.\n");
}
return ;
}
上一篇:SharePoint 2013 WebPart 管理工具分享[开源]


下一篇:tiltShift.js - CSS3 滤镜实现移轴镜头效果