#include<stdio.h>#include<string.h>voidfortune(char*cards){char*ranklist="A23456789TJQK";intsuit[5],rank[5],straight=0,flush=0,pair=0,i,j;for(i=0;i<5;i++)suit[i]=cards[i*2],rank[i]=strchr(ranklist,cards[i*2+1])-ranklist,straight|=1<<rank[i];while(straight%2<1)straight/=2;for(i=0;i<4;i++)for(j=i+1;j<5;j++)flush+=(suit[i]==suit[j]),pair+=(rank[i]==rank[j]);if(flush==10&&straight==7681)printf("Royal flush\n");elseif(flush==10&&straight==31)printf("Straight flush\n");elseif(pair==6)printf("Four of a kind\n");elseif(pair==4)printf("Full house\n");elseif(flush==10)printf("Flush\n");elseif(straight==7681||straight==31)printf("Straight\n");elseif(pair==3)printf("Three of a kind\n");elseif(pair==2)printf("Two pair\n");elseif(pair==1)printf("One pair\n");elseprintf("No pair\n");}intmain(void){fortune("SQSJSASKST");fortune("D9D7D6D5D8");fortune("C2D2S2H3H2");fortune("C2D3S2H3H2");fortune("S9S4S8STSJ");fortune("C4H7D5S6H3");fortune("S6H6C5DQC6");fortune("S6HQC5DQC6");fortune("S6H4C5DQC6");fortune("SJSQSKSAC2");fortune("SQSJDASKST");fortune("S4S3DASKS2");return0;}
匿名
#5168()
[
C
]
Rating5/5=1.00
Rating5/5=1.00-0+
[ reply ]