您的位置:首页 > 其它

Hangman Judge

2015-10-29 09:37 375 查看
UVa489

这道题只要注意标记,统计一下个数就行了。

#include <stdio.h>
#include <string.h>
const int maxn = 105, N = 26;
char str[maxn], ch[maxn];
int vis
;
int main ( )
{
int cas, len1, len2, err, cnt, rig;
while ( ~ scanf ( "%d", &cas ) && ~ cas )
{
cnt = rig = err = 0;
memset ( vis, 0, sizeof ( vis ) );
scanf ( "%s%s", str, ch );
len1 = strlen ( str );
len2 = strlen ( ch );
for ( int i = 0; i < len1; i ++ )
{
if ( vis[ str[i]-'a'] == 0 )
{
vis[ str[i]-'a' ] = 1;
cnt ++; //统计字母个数
}
}
for ( int j = 0; j < len2; j ++ )
{
if ( rig >= cnt || err >= 7 )
break ; //如果对的个数达到或错误次数达到
if ( vis[ ch[j]-'a' ] )
{
vis[ ch[j]-'a' ] = 0;
rig ++;
}
else
err ++;
}
printf ( "Round %d\n", cas );
if ( err >= 7 )
printf ( "You lose.\n" );
else if ( rig >= cnt )
printf ( "You win.\n" );
else
printf ( "You chickened out.\n" );
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: