根據規則,先比數字才比花色
所以只要將讀到的牌轉成一個數字,就可以排序了
桃 K = 52、心 K = 51、方 K = 50、梅 K = 49
桃 Q = 48、心 Q = 47、方 Q = 46、梅 Q = 45
.......
桃 2 = 8、心 2 = 7、方 2 = 6、梅 2 = 5
桃 A = 4、心 A = 3、方 A = 2、梅 A = 1
不會再反白下面 ( C 的 )
#include <stdio.h>
int main(void)
{
char a;
int n, i, b, j;
int poker[52]={0};
scanf("%d", &n);
/* 讀每張牌的測資 */
for(i=0;i<n;i++)
{
scanf(" %c %d", &a, &b);
switch(a)
{
case 'S':
poker[i]=4*b;
break;
case 'H':
poker[i]=4*b-1;
break;
case 'D':
poker[i]=4*b-2;
break;
case 'C':
poker[i]=4*b-3;
break;
}
}
/* 插入排序,由大到小 */
for(i=1;i<n;i++)
{
b= poker[i];
j=i;
while (j>0 && poker[j-1]<b)
{
poker[j]=poker[j-1];
j--;
}
poker[j]=b;
}
/* 輸出 */
scanf("%d", &b);
switch(poker[b-1]%4)
{
case 0:
printf("S ");
break;
case 3:
printf("H ");
break;
case 2:
printf("D ");
break;
case 1:
printf("C ");
break;
}
printf("%d", (poker[b-1]-1)/4+1);
return 0;
}