题目描述
一副扑克牌当中,有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)
样例输入
1 3 4 5 6 7 8 9 0 0 0 0 0 0
样例输出
1
解题思路
把不能直接进行比大小的值,统一转换在Ascll码表下进行比较
#include<stdio.h>
#include<string.h>
void paixu(char *a)//利用函数和指针,对接收的值进行转换
{
if(*a=='0')
*a='A';
if(*a=='1')
*a='U';
if(*a=='2')
*a='V';
if(*a=='G')
*a='Y';
if(*a=='H')
*a='Z';
if(*a=='K')
*a='T';
if(*a==' ')
*a='1';
}
int main()
{
char a[27],max;
int i;
while(gets(a))
{
for(i=0;i<27;i++)
{
paixu(&a[i]);//空格也吸收在了a数组内,所以要循环27次
}
max=a[0];
for(i=1;i<27;i++)
{
if(max<a[i])
max=a[i];//找出最大值
}
if(max=='A')//再进行逆转换
max='0';
if(max=='U')
max='1';
if(max=='V')
max='2';
if(max=='Y')
max='G';
if(max=='Z')
max='H';
if(max=='T')
max='K';
printf("%c\n",max);
}
return 0;
}