C语言——PTA 稳赢

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

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔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()
{
	int K, i, j = 1;
	char A[][8] = { "JianDao","ChuiZi","Bu","JianDao" };//首先,将三种可能以“后克前”的方式放在一个数组中
	char B[8];//存放输入的招数
	scanf("%d", &K);
	while (scanf("%s", B))
	{
		if (!strcmp(B, "End"))//strcmp函数比较输入的招数是否与End相同,如果相同,strcmp函数的返回值为0,则非0为真,结束循环
		{
			break;
		}
		for (i = 0; i <= 3; i++)
		{
			if (!strcmp(B, A[i]))//先找到输入的招式在数组A中的位置
			{
				break;
			}
		}
		if (j <= K)//如果赢得次数没有K次,就输出与输入招式相同的下一个
		{
			i++;
            printf("%s\n",A[i]);
			j++;
		}
		else
		{
            printf("%s\n", A[i]);//否则输出当前位置的招式
			j = 1;//重置j,再次开始计数
		}
	}
	return 0;
}

PTA 提交结果如下:

 如有不妥之处,欢迎各位大佬批评指正(- _ -)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值