学习心得!(顺便说一下,今天学会了游泳,超级开心!!)
思路:1.在一行里把猜测单词里可能存在的字母全部输入
2.交给计算机来判断,如果超过7次机会,则lose,还有字母没猜完的,chickened out,全部字母都猜了,而且在7次以内,则win
这个讲得有点抽象,但是敲过代码之后,然后去理解就知道啥意思了。我一开始也不知道到底怎样才是chickened out,到后来就搞清楚了这道题目的意思。这个真的很考研读题的理解能力,我看了好几遍才搞清楚啊。
思考:1.一定要打一遍代码,才能明白其中自己忽略的小细节
2.理解完题目,并不意味着敲出的代码可以AC
3.小细节要注意
4.初始化数据不要丢三落四
#include <stdio.h>
#include <string.h>
#define maxn 100
int left,chance;
char s[maxn], s2[maxn];
int win, lose;
void guess(char ch);
int main()
{
int rnd;
while(scanf("%d%s%s", &rnd, s, s2) == 3 && rnd != -1)
{
printf("Rond %d\n", rnd);
win = lose = 0;
left = strlen(s);
chance = 7;
for(int i = 0; i < strlen(s2); i++)
{
guess(s2[i]);
if(win || lose)
break;
}
if(win)
printf("You win.\n");
else if(lose)
printf("You lose.\n");
else
printf("You chickened out.\n");
}
return 0;
}
void guess(char ch)
{
int bad = 1;
for(int i = 0; i < strlen(s); i++)
{
if(ch == s[i])
{
left--;
bad = 0;
s[i] = ' ';
}
}
if(bad)
chance--;
if(!chance)
lose = 1;
if(!left)
win = 1;
}