*十点半
题目描述
十点半是一个纸牌游戏,或者说数字游戏。这里简化一下,规则是每个人摸两张牌,然后只通过加减运算,如果能够得到十点半的话就算赢,否则就输。扑克从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');
}