您的位置:首页 > 其它

Uva 489: Hangman Judge

2012-07-30 16:32 330 查看


记得刚做UVa时,这个题卡了好几次,后来用strchr函数做的才过的,不过后来用普通方法也实现了 。

//方法一:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000],b[1000],c[27],d[27];
int i,k,num,count,number,flag,fgg;
while(1)
{
scanf("%d",&k);
memset(a,'\0',sizeof(a));
memset(b,'\0',sizeof(b));
memset(c,'\0',sizeof(c));
memset(d,'\0',sizeof(d));
count=0,number=0,num=0,flag=0,fgg=0;
if(k==-1)
break;
printf("Round %d\n",k);
scanf("%s",a);
scanf("%s",b);
for(i=0; i<strlen(a); i++)
if(strchr(c,a[i])==NULL)
c[num++]=a[i];
num=0;
for(i=0; i<strlen(b); i++)
if(strchr(d,b[i])==NULL)
d[num++]=b[i];
for(i=0; i<strlen(d); i++)
{
if(strchr(c,d[i])!=NULL)
count++;
else
number++;
if(number==7)
{
printf("You lose.\n");
fgg=1;
break;
}
if(count==strlen(c))
{
printf("You win.\n");
fgg=1;
break;
}
}
if(fgg==0)
printf("You chickened out.\n");
}
return 0;
}

//方法2:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000],b[1000],c[28],d[28],a1[27],b1[27];
int i,j,k,count,number,flag,fgg,cct,sum;
while(1)
{
scanf("%d",&k);
if(k==-1)
break;
memset(a,'\0',sizeof(a));
memset(b,'\0',sizeof(b));
memset(c,'0',sizeof(c));
memset(d,'0',sizeof(d));
memset(b1,'\0',sizeof(b1));
memset(a1,'\0',sizeof(a1));
count=0,number=0,flag=0,fgg=0,sum=0,j=0;
printf("Round %d\n",k);
scanf("%s",a);
scanf("%s",b);
j=0;
for(i=0; i<strlen(a); i++)
{
cct=a[i]-'a'+1;
if(c[cct]=='0')
a1[j++]=cct+'a'-1;
c[cct]='1';
}
j=0;
for(i=0; i<strlen(b); i++)
{
cct=b[i]-'a'+1;
if(d[cct]=='0')
b1[j++]=cct+'a'-1;
d[cct]='1';
}
for(i=0; i<strlen(b1); i++)
{
if(strchr(a1,b1[i])!=NULL)
count++;
else
number++;
if(number==7)
{
printf("You lose.\n");
fgg=1;
break;
}
if(count==strlen(a1))
{
printf("You win.\n");
fgg=1;
break;
}
}
if(fgg==0)
printf("You chickened out.\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null c