fork download
  1. #include <stdio.h>
  2.  
  3. int is_valid(char c) {
  4. return (c >= '2' && c <= '9') || c == 'T' || c == 'J' || c == 'Q' || c == 'K' || c == 'A';
  5. }
  6.  
  7. int get_value(char c) {
  8. if (c >= '2' && c <= '9') {
  9. return c - '0';
  10. } else if (c == 'T' || c == 'J' || c == 'Q' || c == 'K') {
  11. return 10;
  12. } else { // 'A'
  13. return 11;
  14. }
  15. }
  16.  
  17. int calculate_blackjack_score(char c1, char c2) {
  18. if (!is_valid(c1) || !is_valid(c2)) {
  19. return -1;
  20. }
  21. int v1 = get_value(c1);
  22. int v2 = get_value(c2);
  23. int sum = v1 + v2;
  24. int ace_count = (c1 == 'A') + (c2 == 'A');
  25. if (ace_count == 2) {
  26. sum -= 10;
  27. }
  28. return sum;
  29. }
  30.  
  31. int main() {
  32. char card1, card2;
  33. printf("Enter cards: ");
  34. scanf(" %c %c", &card1, &card2);
  35.  
  36. int score = calculate_blackjack_score(card1, card2);
  37.  
  38. if (score == -1) {
  39. if (!is_valid(card1)) {
  40. printf("*** Would be invalid, %c is not a valid card\n", card1);
  41. } else {
  42. printf("*** Would be invalid, %c is not a valid card\n", card2);
  43. }
  44. } else {
  45. printf("The score is %d\n", score);
  46. }
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0s 5272KB
stdin
A Q
stdout
Enter cards: The score is 21