L1-019 谁先倒 (15 分)详细注释

L1-019 谁先倒 (15 分)*

描述

划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就输了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。

输入格式:
输入第一行先后给出甲、乙两人的酒量(不超过100的非负整数),以空格分隔。下一行给出一个正整数N(≤100),随后N行,每行给出一轮划拳的记录,格式为:

甲喊 甲划 乙喊 乙划
其中喊是喊出的数字,划是划出的数字,均为不超过100的正整数(两只手一起划)。

输出格式:
在第一行中输出先倒下的那个人:A代表甲,B代表乙。第二行中输出没倒的那个人喝了多少杯。题目保证有一个人倒下。注意程序处理到有人倒下就终止,后面的数据不必处理。

输入样例:
1 1
6
8 10 9 12
5 10 5 10
3 8 5 12
12 18 1 13
4 16 12 15
15 1 1 16
输出样例:
A
1

#include<iostream>
using namespace std;
int jla, jlb;
int jhan, jhua, yhan, yhua;
int N;//N是会合数
int jhe = 0,yhe = 0;
int a, b;

int main()
{
	scanf("%d %d", &jla, &jlb);//输入酒量
		cin >> N;//输入回合数
	
	while (N--)
	{
		int c = 1;
		scanf("%d %d %d %d", &jhan, &jhua, &yhan, &yhua);
		if (jhan + yhan == jhua && jhan + yhan == yhua)//如果是平局
		         c=2	;
		if(c!=2)//如果不是平局
		{
         if (jhua == jhan + yhan)//甲喊的对
			{
				jhe = jhe + 1;//甲加一杯
			}
			if (yhua == jhan + yhan)//乙喊得对
			{
				yhe = yhe + 1;//乙加一杯
			}
			
			//判断有人醉了没
			if (b != 1)
			{
				if (jhe > jla)
					a = 1;
			}
			else
				break;
			if (a != 1)
			{
				if (yhe > jlb)
					b = 1;
			}
			else
				break;
			//cout << jhe << endl << yhe<<endl;
		}
	}	
	//cout << a << endl << b << endl;
	if (a == 1)
		cout << "A" <<endl<< yhe<<endl;
	if (b== 1)
		cout << "B" <<endl<< jhe<<endl;
	system("pause");
}
上一篇:第019讲:函数:我的地盘听我的


下一篇:PTA L1-019 谁先倒(团体程序设计天梯赛)