C:L1-044 稳赢 (15分)

泪湿孤枕 提交于 2020-01-31 04:18:59

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔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;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!