yang631144


私信TA

用户名:dotcpp0762263

访问量:77

签 名:

等  级
排  名 1289
经  验 2974
参赛次数 0
文章发表 5
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

TA的其他文章

解题思路:注意事项:参考代码:
#include <stdio.h>
#include <stdlib.h>
typedef enum bee {
    d=3,
    c,
    h,s
} huaSe;
typedef enum see {
    i2=2,
    i3,i4,i5,i6,i7,i8,i9,
    i10=10,J,Q,K,A
} shuZi;
typedef struct {
    huaSe ss;//数字
    shuZi bs;//花色
    char tm[5];
} pai;
int check(const void *,const void *);
int main(int argc, char** argv) {
    pai ar[5]= {0};
    char tmp[16];
    pai *par,*bar;
    char *p;
    
    scanf("%s",tmp);
    par=ar,p=tmp;
    bar= ar ;
    
    while(*p!='\0') {
        switch(*p)
        {
        case  '1':
            par->ss=i10;
            par->tm[0]='1';
            par->tm[1]='0';
            p+=2;
            par++;
            break;
        case '2':
            par->ss=i2;
            par->tm[0]='2';
            p++;
            par++;
            break;
        case '3':
            par->ss=i3;
            par->tm[0]='3';
            p++;
            par++;
            break;
        case '4':
            par->ss=i4;
            par->tm[0]='4';
            p++;
            par++;
            break;
        case '5':
            par->tm[0]='5';
            par->ss=i5;
            p++;
            par++;
            break;
        case '6':
            par->tm[0]='6';
            par->ss=i6;
            p++;
            par++;
            break;
        case '7':
            par->tm[0]='7';
            par->ss=i7;
            p++;
            par++;
            break;
        case '8':
            par->tm[0]='8';
            par->ss=i8;
            p++;
            par++;
            break;
        case '9':
            par->tm[0]='9';
            par->ss=i9;
            p++;
            par++;
            break;
        case 'J':
            par->tm[0]='J';
            par->ss=J;
            p++;
            par++;
            break;
        case 'Q':
            par->tm[0]='Q';
            par->ss=Q;
            p++;
            par++;
            break;
        case 'K':
            par->tm[0]='K';
            par->ss=K;
            p++;
            par++;
            break;
        case 'A':
            par->tm[0]='A';
            par->ss=A;
            p++;
            par++;
            break;
        case 'd':
            if(bar->tm[0]!='1')
                bar->tm[1]='d';
            else
                bar->tm[2]= 'd';
            bar->bs=d;
            bar++;
            p++;
            break;
        case 'c':
            if(bar->tm[0]!='1')
                bar->tm[1]='c';
            else
                bar->tm[2]= 'c';
            bar->bs=c;
            bar++,p++;
            break;
        case 's':
            if(bar->tm[0]!='1')
                bar->tm[1]='s';
            else
                bar->tm[2]= 's';
            bar->bs=s;
            bar++,p++;
            break;
        case 'h':
            if(bar->tm[0]!='1')
                bar->tm[1]='h';
            else
                bar->tm[2]= 'h';
            bar->bs=h;
            bar++,p++;
            break;
        }
    }
    qsort(ar,5,sizeof(pai),check);
    for(int j=0; j<5; j++)
        printf("%s ",ar[j].tm);
    return 0;
}
int check(const void *a,const void *b) {
    if(((pai *)a)->ss==((pai *)b)->ss) {
        return ((pai *)a)->bs-((pai *)b)->bs;
    }
    return ((pai *)a)->ss-((pai *)b)->ss;
}


 

0.0分

0 人评分

  评论区

  • «
  • »