十點半


*十點半

題目描述

       十點半是一個紙牌遊戲,或者說數字遊戲。這裏簡化一下,規則是每個人摸兩張牌,然後只通過加減運算,如果能夠得到十點半的話就算贏,否則就輸。撲克從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');
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章