大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。
输入格式:
输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi
代表“锤子”、JianDao
代表“剪刀”、Bu
代表“布”。End
代表输入结束,这一行不要作为出招处理。
输出格式:
对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。
输入样例:
2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
输出样例:
Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
getchar();
char a[10000][100];
int i,k,m;
k=0;
i=0;
m=1;
while(1){
gets(a[i]);
if(a[i][0]=='E')
break;
k=k+1;
if(k==m*(n+1)){
m=m+1;
}
if(a[i][0]=='C'){
if(k!=(m-1)*(n+1))
printf("Bu\n");
else
printf("ChuiZi\n");
}
else if(a[i][0]=='B'){
if(k!=(m-1)*(n+1))
printf("JianDao\n");
else
printf("Bu\n");
}
else if(a[i][0]=='J'){
if(k!=(m-1)*(n+1))
printf("ChuiZi\n");
else
printf("JianDao\n");
}
i=i+1;
}
return 0;
}
这里我们选用gets的方法整行输入字符串,但这里需要注意,就是gets会读取回车,也就是说在输入完n之后需要加一个getchar来清除缓存区里的回车。还有一种方法就是直接用%s读取也是可以的,%s不会接受回车和空格,所以不用清除回车。
由于每一种情况的开头字母都不同,所以只需要判断开头字母就可以了,接下来就是注意判断循环次数和平局次数就可以了。
希望能给你们带来帮助!!!