Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
danil6101
0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 4
1

Необходимо найти сумму очков карт в блекджеке

19.12.2014, 20:06. Просмотров 359. Ответов 1
Метки нет (Все метки)

Суть задачи состоит в том, чтобы посчитать сумму очков карт на руках (игра блекджек) и вывести четное или нечетное получилось число. В моем коде судя по всему ошибка, а конкретно в этом месте
C
1
2
3
4
 for (p = hand; p -> score != 0; p++)
        {
            sum = sum + bj[ ].score;
        }
Вот и сам код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
struct Score {
    char rank;  // достоинство
    int    score; // сколько очков за карту
};
int check (struct Score * hand)
{
        int index =0, sum = 0;
        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}};
        for (p = hand; p -> score != 0; p++)
        {
            sum = sum + bj[ ].score;
        }
 
        if (sum % 2 == 0)
        {
            printf ("Четное количество очков");
        }
 
         if (sum % 2 != 0)
         {
             printf ("Нечетное количество очков");
         }
}
 
int main ()
{
    struct Score [ ] hand1 = {{'Q', 10}, {'A', 11}, {'9', 9}, {0, 0}};
    struct Score * p;
    for (p = hand; p -> score != 0; p++)
        {
            printf("%c%i", p -> rank, p -> score);
        }
    printf("\n");
    printf("%d\n", check(hand));
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2014, 20:06
Ответы с готовыми решениями:

Найдите вероятность того, что сумма очков у этих карт равна 21
Из колоды 36 карт наудачу извлекаются три. Найдите вероятность того, что сумма очков у этих карт...

Определить вероятность того, что сумма очков этих карт равна 21
помогите пожалуйста решить задачи! из колоды 36 карт наудачу извлекают две карты. Определить...

Найти количество таких наборов из 6 карт, что в них 3 пары карт разных достоинств
Из колоды в 52 карты случайно вытаскивают 6 карт. Найти количество таких наборов из 6 карт, что в...

Необходимо только определить сколько очков набрал Василий.
Спортсмен Василий участвовал в соревнованиях по хоккейболу и получил в личном зачете серебряную...

Из колоды 36 карт на удачу берут 4. Найти вероятность того что среде них не менее трех карт пиковой масти
из колоды 36 карт на удачу берут 4 карты. Найти вероятность того что среде них не менее трех карт...

1
schdub
Эксперт С++
3044 / 1386 / 421
Регистрация: 19.01.2009
Сообщений: 3,729
Завершенные тесты: 1
20.12.2014, 15:23 2
Цитата Сообщение от danil6101 Посмотреть сообщение
по всему ошибка, а конкретно в этом месте
danil6101, внутри функции check() не происходит ни одной итерации цилка, т.к. первый элемент bj имеет 0 значение очков, а это условие выхода из цикла. К тому же не понятно, зачем у вас вообще объявлен массив bj, у вас очки каждой карты указаны непосредственно в руке:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
 
struct Score {
    char rank;  // достоинство
    int  score; // сколько очков за карту
};
 
int check (const struct Score * hand) {
    int sum = 0;
    for (; hand->score != 0; ++hand) sum += hand->score;
    return sum;
}
 
int main () {
    int sum;
    struct Score *p, hand[] = {{'Q', 10}, {'A', 11}, {'9', 9}, {0, 0}};
    for (p = hand; p->score != 0; ++p) {
        printf("%c%i", p->rank, p->score);
    }
    sum = check(hand);
    printf("\n%s количество очков %d\n",
        (sum % 2 == 0 ? "Четное" : "Нечетное"), sum);
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2014, 15:23

Необходимо найти сумму ряда чисел
Нужно реализовать программу, которая будет считать сумму чисел из ряда...

Необходимо найти сумму элементов массива с k1-го по k2-й
Дан массив из n элементов и числа k1 и k2. Необходимо найти сумму элементов массива с k1-го по k2-й.

Колода карт из 36 карт, сколькими способами можно достать 5 карт?
Колода карт из 36 карт. Сколькими способами можно достать 5 карт так, чтобы среди них были пиковые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru