fork download
  1. #include <stdio.h>
  2. #include <ctype.h>
  3.  
  4. // Function to return the blackjack value of two cards
  5. int blackjack_score(char card1, char card2) {
  6. int value1 = 0, value2 = 0;
  7.  
  8.  
  9. card1 = toupper(card1);
  10. card2 = toupper(card2);
  11.  
  12. // Helper function using a switch-case
  13. int get_card_value(char card) {
  14. switch (card) {
  15. case '2': return 2;
  16. case '3': return 3;
  17. case '4': return 4;
  18. case '5': return 5;
  19. case '6': return 6;
  20. case '7': return 7;
  21. case '8': return 8;
  22. case '9': return 9;
  23. case 'T': case 'J': case 'Q': case 'K': return 10;
  24. case 'A': return 11; // default as 11, may adjust later
  25. default: return -1; // invalid card
  26. }
  27. }
  28.  
  29. value1 = get_card_value(card1);
  30. value2 = get_card_value(card2);
  31.  
  32. // Check for invalid input
  33. if (value1 == -1 || value2 == -1) {
  34. printf("*** Invalid input: '%c' and/or '%c' are not valid cards.\n", card1, card2);
  35. return -1;
  36. }
  37.  
  38. // Adjust for double Aces
  39. if (card1 == 'A' && card2 == 'A') {
  40. return 11 + 1; // First ace is 11, second is 1
  41. }
  42.  
  43. // Adjust one ace to 11 if present
  44. if (card1 == 'A' || card2 == 'A') {
  45. return (value1 + value2); // only one Ace: counts as 11
  46. }
  47.  
  48. return value1 + value2;
  49. }
  50.  
  51. int main() {
  52. char card1, card2;
  53. printf("Enter cards: ");
  54. scanf(" %c %c", &card1, &card2);
  55.  
  56. int score = blackjack_score(card1, card2);
  57.  
  58. if (score != -1) {
  59. printf("The score is %d\n", score);
  60. }
  61.  
  62. return 0;
  63. }
  64.  
  65.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Enter cards: *** Invalid input: '' and/or '' are not valid cards.