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