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