这一题注意几个条件就行了。特殊情况有:如果已经全部猜对了,后面还在继续猜还是win。 试错的机会用完之前猜完才算win。
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int n;
while(cin>>n,n!=-1)
{
char s1[1000],s2[1000];
cin>>s1>>s2;
int lengh1=strlen(s1);
int lengh2=strlen(s2);
int flag,p=0,sum=0;
for(int i=0;i<lengh2;i++)
{
flag=0;
for(int j=0;j<lengh1;j++)
{
if(s2[i]==s1[j])
{
sum+=1;
s1[j]='0';//猜过的,记为0;
flag++;
}
}
if(!flag)
p++;
if(sum==lengh1)
break;
}
if(sum==lengh1&&p<=6)
{
cout<<"Round "<<n<<endl;
cout<<"You win."<<endl;
}
else if(sum<lengh1&&p<=6)
{
cout<<"Round "<<n<<endl;
cout<<"You chickened out."<<endl;
}
else if(p>6)
{
cout<<"Round "<<n<<endl;
cout<<"You lose."<<endl;
}
}
return 0;
}