Необходимо найти сумму очков карт в блекджеке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Суть задачи состоит в том, чтобы посчитать сумму очков карт на руках (игра блекджек) и вывести четное или нечетное получилось число. В моем коде судя по всему ошибка, а конкретно в этом месте
Листинг программы
  1. for (p = hand; p -> score != 0; p++)
  2. {
  3. sum = sum + bj[ ].score;
  4. }
Вот и сам код:
Листинг программы
  1. #include <stdio.h>
  2. struct Score {
  3. char rank; // достоинство
  4. int score; // сколько очков за карту
  5. };
  6. int check (struct Score * hand)
  7. {
  8. int index =0, sum = 0;
  9. struct Score bj[ ] = {{0, 0}, {'2', 2}, {'3', 3}, {'4', 4}, {'5', 5}, {'6', 6}, {'7', 7}, {'8', 8}, {'9', 9}, {'T', 10}, {'J', 10}, {'Q', 10}, {'K', 10}, {'A', 11}};
  10. for (p = hand; p -> score != 0; p++)
  11. {
  12. sum = sum + bj[ ].score;
  13. }
  14. if (sum % 2 == 0)
  15. {
  16. printf ("Четное количество очков");
  17. }
  18. if (sum % 2 != 0)
  19. {
  20. printf ("Нечетное количество очков");
  21. }
  22. }
  23. int main ()
  24. {
  25. struct Score [ ] hand1 = {{'Q', 10}, {'A', 11}, {'9', 9}, {0, 0}};
  26. struct Score * p;
  27. for (p = hand; p -> score != 0; p++)
  28. {
  29. printf("%c%i", p -> rank, p -> score);
  30. }
  31. printf("\n");
  32. printf("%d\n", check(hand));
  33. }

Решение задачи: «Необходимо найти сумму очков карт в блекджеке»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. struct Score {
  4.     char rank;  // достоинство
  5.     int  score; // сколько очков за карту
  6. };
  7.  
  8. int check (const struct Score * hand) {
  9.     int sum = 0;
  10.     for (; hand->score != 0; ++hand) sum += hand->score;
  11.     return sum;
  12. }
  13.  
  14. int main () {
  15.     int sum;
  16.     struct Score *p, hand[] = {{'Q', 10}, {'A', 11}, {'9', 9}, {0, 0}};
  17.     for (p = hand; p->score != 0; ++p) {
  18.         printf("%c%i", p->rank, p->score);
  19.     }
  20.     sum = check(hand);
  21.     printf("\n%s количество очков %d\n",
  22.         (sum % 2 == 0 ? "Четное" : "Нечетное"), sum);
  23.     return 0;
  24. }

Объяснение кода листинга программы

  1. Включаем стандартную библиотеку ввода-вывода
  2. Объявляем структуру Score, которая содержит два поля: rank (достоинство) и score (количество очков за карту)
  3. Определяем функцию check, которая принимает указатель на массив структур Score и возвращает их сумму
  4. В функции main создаем массив структур Score hand и инициализируем его значения
  5. В цикле выводим значения структур Score на экран
  6. Вызываем функцию check, передавая ей указатель на массив hand
  7. Выводим на экран результат функции check и описываем его как четное или нечетное
  8. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы