Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 2
Регистрация: 07.02.2011
Сообщений: 221

Выбрать 10 карт из колоды не повторяясь

09.11.2012, 19:13. Показов 727. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, подскажите пожалуйста как выбрать 10 карт (не повторяясь) из колоды карт

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
 
struct card{
        int value;
        char suit;
};
 
 
struct board{
        struct card deck[52];
};
 
 
int main(){
        struct board b;
        createDeck(b);
        return 0;
 
}
 
 
void createDeck(struct board b){
        int i =1;
        int counter = 1;
        int counter2 = 1;
        int counter3 = 1;
        int counter4 = 1;
 
 
        for(i=0; i< 52; i++){
                if(i<13){
                        b.deck[i].value = counter;
                        b.deck[i].suit = 'c';
                        counter++;
                }
                else if(i<26){
                        b.deck[i].value = counter2;
                        b.deck[i].suit = 'd';
                        counter2++;
                }
                else if(i<39){
                        b.deck[i].value = counter3;
                        b.deck[i].suit = 'h';
                        counter3++;
                }
                else if(i<52){
                        b.deck[i].value = counter4;
                        b.deck[i].suit = 's';
                        counter4++;
                }
        }
 
        srand(time(0));
 
 
 
 
        for(i=0; i< 10; i++){
                printf("Card Value: %d Suit: %c \n", b.deck[i].value, b.deck[i].suit);
        }
 
}
Спасибо!

Добавлено через 14 минут
я пробовала создать еще одну структуру
C
1
2
3
struct hend{
        struct card hend[10];
};
и заполнить ее

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 srand(time(0));
        for(i=0; i<10; i++){
                temp = rand()%52;
                if(b.deck[temp].value != 0){
                        a.hend[i].value = b.deck[temp].value;
                        a.hend[i].suit = b.deck[temp].suit;
                        b.deck[temp].value = 0;
                        b.deck[temp].suit = NULL;
                        break;
                }
        }
        for(i=0; i< 10; i++){
                printf("Card Value: %d Suit: %c \n", a.hend[i].value, a.hend[i].suit);
        }
на результат выдает не правильный (только первая строчка верна)

Спасибо!


Card Value: 11 Suit: c
Card Value: 3670071 Suit: 9
Card Value: 6619245 Suit: \
Card Value: 6226024 Suit: 2
Card Value: 3211313 Suit: \
Card Value: 7012463 Suit:
Card Value: 6619182 Suit: x
Card Value: 0 Suit: f
Card Value: 2949230 Suit:
Card Value: -2147417600 Suit: ▒
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2012, 19:13
Ответы с готовыми решениями:

Выбрать 10 случайных неповторяющихся карт из колоды
Добрый день, подскажите пожалуйста, где ошибка: у меня колода из 52 карт, где value - это числа от 1 до 13, suit - ч, б, к , п ( черви,...

Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт?
Здравствуйте, можете помочь с этим заданием? Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт так,...

Сколькими способами из колоды 36 карт можно выбрать неупорядоченный набор из 5 карт
Сколькими способами из колоды 36 карт можно выбрать неупорядоченный набор из 5 карт так, чтобы в этом наборе было точно: 2 черных карты, 1...

4
Ты за кого меня держиш!?
 Аватар для ЦарьКащей
22 / 23 / 7
Регистрация: 26.10.2011
Сообщений: 308
Записей в блоге: 1
09.11.2012, 19:31
Можно сделать массив или несколько, в каждом из которых покласть по 4 переменные, в соответствии с картами и условиться о порядке мастей, Ч,Б,П,К например. Получится массив на 36 карт или 9 условных ячеек по 4 элемента, что соответствует девяти типам карт по четыре масти каждая. А дальше в массиве уоторая карта была показана елементу можно присвоить значение например -1 и проверять наличие такой цифры означающей выбывание карты.

Пример проверки
C
1
2
3
4
5
6
7
8
9
10
11
char mass[36];
for(i = 0; i < 9; i++){
for(n = 0; n < 4; n++){
if (mass[i * n] == -1){
//карту с номером i мастью с номером n выбрасывать низя, её в колоде нет.
}
else{
//карту выбросить мона, она в колоде есть.
mass[i * n] = -1;
}
}
Както так.
1
40 / 37 / 15
Регистрация: 25.10.2012
Сообщений: 112
10.11.2012, 03:11
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
#include <stdio.h>
#include <string.h>
#include <time.h>
 
#define DECK_SIZE 36
 
int main()
{
    int cardChecked[DECK_SIZE];      
    memset(cardChecked, 0, DECK_SIZE * sizeof(int));    
    
    srand(time(NULL));
 
    int i;
    int card;
    int suit;
 
    for (i = 0; i < 10; i++)
    {
        do
        {
            card = rand() % (DECK_SIZE / 4) + 1;
            suit = rand() % 4;
        } while (cardChecked[card + DECK_SIZE * suit] != 0);           
        // подправь printf, чтобы карта выводилась в формате номинал - масть
        printf("%d of %d\n", card, suit);
    }
    
    return 0;
}
1
1 / 1 / 2
Регистрация: 07.02.2011
Сообщений: 221
10.11.2012, 07:47  [ТС]
Спасибо конечно, но мне обязательно нужно использовать struct В решении
0
Ты за кого меня держиш!?
 Аватар для ЦарьКащей
22 / 23 / 7
Регистрация: 26.10.2011
Сообщений: 308
Записей в блоге: 1
10.11.2012, 17:10
Ну а в структуру всёравно массив же кладёш.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2012, 17:10
Помогаю со студенческими работами здесь

Сколькими способами из колоды 36 карт можно выбрать неупорядоченный набор из 5 карт?
сколькими способами из колоды 36 карт можно выбрать неупорядоченный набор из 5 карт так чтобы в этом наборе было: 1) 1валет 2) дам...

Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт
Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт так, чтобы в нем точно было 2 бубновые, 2 крестовые...

Сколькими способами из колоды 36 карт можно выбрать неупорядоченный набор из 5 карт
Помогите пожалуйста! сколькими способами из колоды 36 карт можно выбрать неупорядоченный набор из 5 карт чтобы в этом наборе было бы...

Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт
Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт так, чтобы в этом наборе было точно:2 дамы, 1 король,...

Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт
Помогите пожалуйста разобраться с задачей. Сколькими способами из колоды в 36 карт можно выбрать неупорядоченный набор из 5 карт, так,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru