纸牌游戏 比较大小

题目描述

玩家甲和玩家乙各出一张牌,看谁大。

游戏规则:如果两张牌都不是王牌花色或则都是王牌花色,则牌面大的牌大,如果牌面一样大则一样大。若其中一张牌是王牌而另一张不是,则无论牌面如何都是王牌花色大。

输入

第一行一个数字n,代表数据组数(n <= 10)
对于每组数据,首先输入一个字符(S\H\D\C),表示王牌花色。
接下去一行有两张牌面,表示为牌面花色,如8D9S等。

输出

对于每组数据,输出第一张牌是否比第二张牌大,若是则输出YES,否则输出NO

样例输入

1HQH 9S

样例输出

YES

提示

A的值为1,不是13

源代码如下:

#include<stdio.h>
int main()
{
    int i,j,n,x,y,len1,len2;
    char wang;
    char ch1[50],ch2[50];
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        getchar(); //注意GETCHER()的使用。
        scanf("%c",&wang); //输入王牌的花色
        scanf("%s %s",ch1,ch2);
        len1=strlen(ch1); //判断王牌的字符数字(其中牌10的字符串长度为三,所以单独考虑)
        if(len1==3){ch1[0]=58;ch1[1]=ch1[2];} //牌10的字符串长度为三,改变牌10的所含,用9后面的AS。码代替),并将其花色赋给CH1[1],便于比较。
        else
        {
            if(ch1[0]=='A')ch1[0]=49;
            if(ch1[0]=='J')ch1[0]=59;
            if(ch1[0]=='Q')ch1[0]=60;
            if(ch1[0]=='K')ch1[0]=61;
        }
        len2=strlen(ch2);
        if(len2==3){ch2[0]=58;ch2[1]=ch2[2];}
        else
        {
            if(ch2[0]=='A')ch2[0]=49;
            if(ch2[0]=='J')ch2[0]=59;
            if(ch2[0]=='Q')ch2[0]=60;
            if(ch2[0]=='K')ch2[0]=61;
        }
        if((ch1[1]==wang&&ch2[1]==wang)||(ch1[1]!=wang&&ch2[1]!=wang))//比较
        {
            if(ch1[0]>ch2[0])
                printf("YES\n");
            else
                printf("NO\n");
        }
        if(ch1[1]==wang&&ch2[1]!=wang)
        {
            printf("YES\n");
        }
        if(ch1[1]!=wang&&ch2[1]==wang)
        {
            printf("NO\n");
        }
    }
    return 0;
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值