3688 - 猜单词
时间限制 : 1 秒
内存限制 : 128 MB
又一个游戏是这样的:计算机想一个单词让玩家猜,玩家每次可以猜一个字母。如果这个单词里有那个字母,所
有该字母会显示出来;如果没有那个字母,则计算机会给玩家记录一次,当记录次数超过六次的时候玩家就输
了。注意,猜一个已经猜过的字母也算错。
<span></span>
<span> </span>在本题中,你的任务是编写一个“裁判”程序,输入单词和玩家的猜想,判断玩家赢了<span>(You win.)</span>、输了<span>(You</span>
<span> lose.)</span>、还是已经放弃<span>(You chickened out.)</span>。<span></span>
<span></span>
题目输入
有多个测试数据,每个测试数据占两行,第一行是电脑想的单词,第二行是玩家的猜想,保证每行只含有小写字
母。
<span></span>
题目输出
对于每组测试数据,输出对应的”You win.” “You lose.” “You chickened out.”
输入/输出样例
输入格式
cheese chese cheese abcdefg cheese abcdefgij
输出格式
You win. You chickened out. You lose.
C语言解答
#include<stdio.h> #include<string.h> int main() { int i,j,k,n; char s[2][20]; while(scanf("%s%s",s[0],s[1])==2) { k=0; for(i=0;i<strlen(s[1]);i++) { n=1; for(j=0;j<strlen(s[0]);j++) { if(s[1][i]==s[0][j]){s[0][j]='0';n=0;} } if(n)k++; } if(k>6)printf("You lose.\n"); else { for(j=0;j<strlen(s[0]);j++) if(s[0][j]!='0'){printf("You chickened out.\n");break;} else if(j==strlen(s[0])-1)printf("You win.\n"); } } return 0; }
C++解答
#include <bits/stdc++.h> using namespace std; int main() { //freopen("F:\\TestFiles\\test.in","r",stdin); //freopen("F:\\TestFiles\\test2.out","w",stdout); char a[50],b[50]; while(~scanf("%s%s",a,b)){ int wr=0; int len1=strlen(a); int len2=strlen(b); int ans=0; for (int i=0;i<len2;i++){ int flags=0; for (int j=0;j<len1;j++){ if (a[j]==b[i]){ flags=1; a[j]='*'; ans++; } } if (!flags){ wr++; } } if (wr<=6&&ans==len1){ printf("You win.\n"); } if (wr<=6&&ans<len1){ printf("You chickened out.\n"); } if (wr>6){ printf("You lose.\n"); } } return 0; }