统计“21点”(BlackJack)游戏的点数。要求输入手中的2~5张牌的点数,可为2~10、J、Q、K、A。牌点为2~10的每张牌都分别记为相应的点数,花牌(JQK)记为10点,A既可以记为1点,也可记为11点,选择最为有利的。目标是尽可能接近但不要超过21点,超过21点表示这一手牌已经“爆”了。例如,一张A和一张10可记为11点或21点,但由于21点更好,要记为21点;1张A和2张8可记为17点或者27点,但由于27点已经“爆”了,要记为17点。输入应能够支持大小写,输出2~21的一个数字,或者“爆了”的提示信息。
#include<stdio.h>
int main() {
char a, b, c, d, e;
int sum=0;
while(1){
scanf("%c",&a);
if(a=='\n')break;
}
while(1){
scanf("%c",&b);
if(b=='\n')break;
}
while(1){
scanf("%c",&c);
if(c=='\n')break;
}
while(1){
scanf("%c",&d);
if(d=='\n')break;
}
while(1){
scanf("%c",&e);
if(e=='\n')break;
}
switch(a){
case 'j':sum+=10;break;
case 'J':sum+=10;break;
case 'q':sum+=10;break;
case 'Q':sum+=10;break;
case 'k':sum+=10;break;
case 'K':sum+=10;break;
default:sum=sum+a-'0';
}
switch(b){
case 'j':sum+=10;break;
case 'J':sum+=10;break;
case 'q':sum+=10;break;
case 'Q':sum+=10;break;
case 'k':sum+=10;break;
case 'K':sum+=10;break;
default:sum=sum+b-'0';
}
switch(c){
case 'j':sum+=10;break;
case 'J':sum+=10;break;
case 'q':sum+=10;break;
case 'Q':sum+=10;break;
case 'k':sum+=10;break;
case 'K':sum+=10;break;
default:sum=sum+c-'0';
}
switch(d){
case 'j':sum+=10;break;
case 'J':sum+=10;break;
case 'q':sum+=10;break;
case 'Q':sum+=10;break;
case 'k':sum+=10;break;
case 'K':sum+=10;break;
default:sum=sum+d-'0';
}
switch(e){
case 'j':sum+=10;break;
case 'J':sum+=10;break;
case 'q':sum+=10;break;
case 'Q':sum+=10;break;
case 'k':sum+=10;break;
case 'K':sum+=10;break;
default:sum=sum+e-'0';
}
printf("%d",sum);
}