十点半


*十点半

题目描述

       十点半是一个纸牌游戏,或者说数字游戏。这里简化一下,规则是每个人摸两张牌,然后只通过加减运算,如果能够得到十点半的话就算赢,否则就输。扑克从2到K分别代表2~13点,A代表半点,然后王或老头或司令随便你怎么叫,不分大小,都代表半点。

输入

输入有多组数据。第一行一个正整数T代表数据的组数。接下来N行,每行两张牌。其中11到13的牌是J,Q,K,王是S。

输出

       输出也要N行,每行的格式是如果赢了Case P: WIN,输了Case P: LOSE。其中P代表是第几组数据。

示例输入

4
10 A
A J
10 S
2 8

示例输出

Case 1: WIN
Case 2: WIN
Case 3: WIN
Case 4: LOSE

源码:
#include <stdio.h>

float Analy(char a[]);//对字符串进行解析
void Resolve(char a[],char b[],char c[]);//将字符串分解成两部分

int main()
{
	char arr1[10];
	char arr2[10],arr3[10];//存储分解后的字符
	int n,i;
	float a,b;//存储点数
	float t;//用于交换数值

	scanf("%d",&n);
	char c=getchar();
	for(i=0; i<n; i++)
	{
		gets(arr1);
		Resolve(arr1,arr2,arr3);
		a = Analy(arr2);
		b = Analy(arr3);
		if(a<b)
		{
			t=a;
			a=b;
			b=t;
		}
		if(a+b == 10.5 || a*b == 10.5 || a/b == 10.5 || a-b == 10.5)
			printf("Case %d: WIN\n",i+1);
		else
			printf("Case %d: LOSE\n",i+1);
	}
	
	return 0;
}

void Resolve(char a[],char b[],char c[])
{
	int i=0,j=0,k=0;
	
	while(a[i] != ' ')
		b[j++] = a[i++];
	b[j] = '\0';

	i++;
	
	while(a[i] != '\0')
		c[k++] = a[i++];
	c[k] = '\0';
}

float Analy(char a[])
{
	if(a[0] == 'A' || a[0] == 'S')
		return 0.5;
	else if(a[0] == 'J')
		return 11;
	else if(a[0] == 'Q')
		return 12;
	else if(a[0] == 'K')
		return 13;
	else if(a[1] >= '0')//两位数字
		return ((a[0]-'0')*10 + (a[1]-'0'));
	else				//一位数字
		return (a[0]-'0');
}




原文地址:https://www.cnblogs.com/tanhehe/p/2883534.html