题目:一副扑克牌当中,有1,2,3,4,5,6,7,8,9,10,J,Q,K,大小王,这里我们为了方便,将大小王设置成G,H(小王G,大王H),将10设置成0。斗地主当中大王 压过小王,小王压过2,2压过1,1压过K……现在给你14张牌,问当中最大的牌是什么?

输入:多组实例,14个字符,表示扑克牌

输出:输出权值最大的那一张牌如果(如果是0 输出10)

Example:

输入:1 3 4 5 6 7 8 9 0 0 0 0 0 0

输出:1

解题思路:这道题我是把字符变成数字进行比较,so这题关键得知道ASCII表,然后定义一个数字数组和字符数组

My DaiMa:

#include<stdio.h>

int main()
{
    char a[28];
    int b[28],i,j,max;

    while(gets(a))   // 然后这题要用gets输入,为什么泥,因为它说要多组输入,然后用scanf("%s",a)不行,后面不能加!=EOF,这个是在数字多组输入时候用的,so只能用while(gets(a))了,辣么问题来了,输入有空格它也吃怎么办,辣就i+2就行了呀,跳过空格这一字符,只管不是空格的字符就行咧

    {
        for(i=0;i<28;i=i+2)//这就是把不是空格的字符变成数字的操作
        {                              
            if(a[i]=='0')
                b[i]=58;
            else if(a[i]=='J')
                b[i]=59;
            else if(a[i]=='Q')
                b[i]=60;
            else if(a[i]=='K')
                b[i]=61;
            else if(a[i]=='1')
                b[i]=62;
            else if(a[i]=='2')
                b[i]=63;
            else if(a[i]=='G')
                b[i]=64;
            else if(a[i]=='H')
                b[i]=65;
            else             //因为3 4 5 6 7 8 9和ASCII表的大小是一样的,so不用管它们的
                b[i]=a[i];
        }
        j=max=0;
        for(i=0;i<28;i=i+2)
        {
            if(max<b[i])
            {
                max=b[i];
                j=i;   //要记住最大值的编号,此数字编号就是字符的编号,最后输出此字符编号的字符
            }            即可
        }
        printf("%c\n",a[j]);
    }
    return 0;
}