为什么一直WA!!
苍天呀,大地啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 求解脱!
我的十一啊
=================================2011.10.1========================================
后记:感谢CCAV,感谢党,感谢国家,感谢饶立学长,最终发现问题了,原来是最后输出把chickened写成
好在无论如何,当看到Accept的那一刻,还是挺开心的。
苍天呀,大地啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 求解脱!

=================================2011.10.1========================================
后记:感谢CCAV,感谢党,感谢国家,感谢饶立学长,最终发现问题了,原来是最后输出把chickened写成
chickende了,因为这个拼写错误,无限次的WA,搞的这两天无比郁闷。
这题不是难题,本来觉得可以一次AC的,结果困了这么久,这就像打对战游戏时,你和一个高手打,被高手虐的死去活来,可能也不会觉得有什么,顶多觉得:唉,和高手差距太远啦!
但是如果和一个与你水平差不多的,甚至比你还水的对手打,结果被虐的死去活来的时候,你会做何感想呢?反正我是想砸电脑!好在无论如何,当看到Accept的那一刻,还是挺开心的。
下面代码中的错误就不更正了,以警示自己和来人!
/**Author: Gneveek
* Data: 2011-9-29
* Descripition: UVa - 489 Hangman Judge
*/
#include <stdio.h>
#include <string.h>
#define MAXN 1000
#define TRUE 1
#define FALSE 0
int is_exist(char str[], char c);
int main()
{
int n,i,j,right,wrong; //right存放猜正解的字符的个数,最后和正确的字符串的长度相比,如果相等就认为全猜对了;wrong记猜错的次数
int alen,blen; //a[] 和 b[]的长度
int flag;
char a[MAXN],b[MAXN];
while(scanf("%d",&n) && n != -1)
{
right = wrong = i = j = 0;
getchar(); //clear '\n'
gets(a);
gets(b);
alen = strlen(a); blen = strlen(b);
for(i=0; i<blen; i++)
{
//如果错误次数大于等于7 或者 正确的字母数等于答案串的长度,退出for 循环
if(wrong >= 7 || right == alen)
break;
flag = FALSE;//初始化flag,标记第二个串中当前字符是否在前面出现过,比如chese当扫描到第二个e时,就设置flag = true
for(j=0; j<i; j++)
{
if(b[j] == b[i]){
flag = TRUE;
break;
}
}
if(flag)
continue; //如果重复就continue,进入下一次循环
//上面已经排除了重复的字符,下面直接判断
if(is_exist(a,b[i]) == 0)
wrong++;
else
right += is_exist(a,b[i]); //函数返回猜中字符的个数
}
//根据情况打印3种不同的结果
printf("Round %d\n",n);
if(wrong >= 7)
printf("You lose.\n");
else if(right == alen)
printf("You win.\n");
else
printf("You chickende out.\n");
}
return 0;
}
int is_exist(char str[], char c)
{
int i,count = 0;
for(i=0; i<strlen(str); i++)
if(str[i] == c)
count++;
return count;
}