通过本题,学习到的内容有:
1.注意这里的输入语句的写法,只之前没有这样写过,尤其是遇到-1结束的写法;
2.对没输入一个字符,对另一个参考字符都要全部扫描一遍,原本一直是用双层循环的,这一用函数会更加清晰些;
3.全局变量在函数中也可直接调用,不用读入;
4.一个字符是否已经猜过,不需要再用一个字符数组标记,可以直接设置成空格;
//刽子手
#include<stdio.h>
#include<string.h>
char ans[200],cai[200];
int win ,lose,chance,left;
void bijiao(char n)
{
int bad = 1;
for(int i;i<strlen(ans);i++)
if(n == ans[i])
{
left--;
ans[i] =' ';
bad =0;
}
if(bad)
chance--;
if(chance == 0)
lose = 1;
if(left ==0)
win = 1;
}
int main()
{
int ci;
while(scanf("%d%s%s",&ci,ans,cai) ==3 && ci !=-1)//注意输入语句的写法
{
printf("Round %d\n", ci);
chance =7;
left = strlen(ans);
win = lose = 0;
for(int i =0;i<strlen(cai);i++)
{
bijiao(cai[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;
}