题目:一副扑克牌当中,有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;
}