大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔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>
#include<string.h>
int main(){
char ch[4][8]={"Bu","JianDao","ChuiZi","Bu"};//记录一个前后克制的顺序
int n,i,k=1;//k用于计出招次数
char zhao[8];//每次出的招
scanf("%d",&n);
getchar();
while(scanf("%s",zhao)){
if(!strcmp(zhao,"End")){
break;//如果输入的是End就离开循环
}
for(i=0;i<3;i++){
if(!strcmp(zhao,ch[i])){//寻找ch数组中一样的招,那出后面一个就稳赢
break;
}
}
if(k<=n){
i++;//往后找一个
puts(ch[i]);
k++;
}
else{//k==n的时候平局
puts(ch[i]);
k=1;
}
}
return 0;
}
来源:CSDN
作者:穿山甲-
链接:https://blog.csdn.net/extern_int_Lin/article/details/104118673