0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 21
1

Программа перетасовки карт

15.10.2014, 17:38. Показов 3497. Ответов 7
Метки нет (Все метки)

не работает прогорамма(

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
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <time.h>
 
using namespace std;
 
void shuffle(int [][13]);
void deal(const int [][13], const char *[], const char *[]); 
 
main() {
    char *suit[4] = {"Черви", "Бубны", "Трефы", "Пики"}; //массивы строк
    char *face[13] = {"Туз", "Двойка", "Тройка", "Четверка", "Пятерка",
                     "Шестерка", "Семерка", "Восьмерка", "Девятка", "Десятка",
                     "Валет", "Дама", "Король"};
    int deck[4][13] = {0};
    
    srand(time(NULL));
    shuffle(deck);
    deal(deck, face, suit);
    return 0;
}
void shuffle(int wDeck[][13]){
    int row, column;
    
    for (int card = 1; card <=52; card++){
        row = rand() % 4;
        column = rand() % 13;
        
        while (wDeck[row][column] !=0){
            row = rand() % 4;
            column = rand() % 13;
        }
        wDeck[row][column] = card;
    }
}
void deal(const int wDeck[][13], const char *wFace[], const char *wSuit[]){
    for (int card = 1; card <= 52; card++)
        for (int row = 0; row <= 3; row++)
            for (int column = 0; column <= 12; column++)
                if (wDeck[row][column] == card)
                    cout << setw(9) << setiosflags(ios::right) << wFace[column] << " масти " << setw(5) << setiosflags(ios::left) << wSuit[row] << (card % 2 == 0 ? '\n' : '\t');
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2014, 17:38
Ответы с готовыми решениями:

Метод перемешивания (перетасовки) всех карт
Метод перезаписывает случайные ячейки из первого в новый массив. А затем копирует его в старый. ...

Программа сдает по 6 карт четырем игрокам и подсчитывает количество последовательностей из двух карт
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt;...

Программа "перетасовки"слов (разбивает слово на 4 части и меняет их местами)
Помогите пожалуйста составить программу,которая &quot;перетасовывает слова&quot;,т.е разбивает слово на 4...

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

7
Котовчанин
940 / 480 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 37
15.10.2014, 17:56 2
Обратитесь к тому, кто её писал. Он точно знает всё.
И о чем задача, и что должно быть, и что не работает.
0
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 21
15.10.2014, 21:01  [ТС] 3
существенное замечание. программа тасует колоду карт и. прога переписана их книжки, но у меня не запускается(
0
5488 / 4883 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.10.2014, 21:07 4
Цитата Сообщение от Silver_bullet Посмотреть сообщение
но у меня не запускается(
Не запускается (не работает) или не компилируется?
0
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 21
15.10.2014, 21:54  [ТС] 5
не компилируется,ошибка в 20 строке
0
5488 / 4883 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.10.2014, 22:06 6
Цитата Сообщение от Silver_bullet Посмотреть сообщение
не компилируется,ошибка в 20 строке
Текст ошибки.
0
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 21
15.10.2014, 22:15  [ТС] 7
9 error: initializing argument 2 of 'void deal(const int (*)[13], const char**, const char**)'
20 error: invalid conversion from 'char**' to 'const char**'
0
5488 / 4883 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
15.10.2014, 22:25 8
Лучший ответ Сообщение было отмечено Silver_bullet как решение

Решение

C++
1
2
3
4
const char *suit[4] = {"Черви", "Бубны", "Трефы", "Пики"}; //массивы строк
const char *face[13] = {"Туз", "Двойка", "Тройка", "Четверка", "Пятерка",
                     "Шестерка", "Семерка", "Восьмерка", "Девятка", "Десятка",
                     "Валет", "Дама", "Король"};
C++
1
int main() {
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2014, 22:25
Помогаю со студенческими работами здесь

Из колоды карт (36 карт) наудачу берут пять карт
Здравствуйте! С теорией вероятностей всегда имел проблему, не могу никак сообразить. Задание такое:...

Эффективный алгоритм перетасовки элементов массива
Друзья, написал вот такую функцию public static void arrayShuffle(int arr) { ...

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

Программа имитирует раздачу карт
Программа имитирует раздачу карт. Если я переношу содержимое функции card_draw в main, то всё...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru