我需要编写一个函数,将两张牌的二十一点手牌的值作为输入,并打印出这手牌的总点数。这是我目前所拥有的,但总返回 0。
int card_score(int num_of_cards)
{
char card_value[SIZE];
int ace_seen=0, total=0;
for (int i=0; i<num_of_cards;i++)
{
switch (card_value[i])
{
case 'a': case 'A':
total +=11;
ace_seen++;
break;
case 'k': case 'K':
case 'q': case 'Q':
case 'j': case 'J':
case 't': case 'T':
total +=10;
break;
case '9':
total +=9;
break;
case '8':
total +=8;
break;
case '7':
total +=7;
break;
case '6':
total +=6;
break;
case '5':
total +=5;
break;
case '4':
total +=4;
break;
case '3':
total +=3;
break;
case '2':
total +=2;
break;
default:
printf("Invalid cards. Please try again.");
break;
}
}
return total;
}
int main()
{
char card_value[SIZE];
int num_of_cards = 0;
int total;
int i = 0;
printf("\n\nEnter cards: ");
scanf("%c", &card_value[i]);
total = card_score(num_of_cards);
printf("\n\nYour score is %d: \n",total);
return 0;
}
如有任何帮助,我们将不胜感激。谢谢。
你的 num_of_cards 是 0。它甚至没有进入循环。也许要求用户输入或将其硬编码为您真正想要的内容
我是一名优秀的程序员,十分优秀!