Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ c++ mysql книга Хочу свою игра перевести на Mysql. Если какое-то масштабная книга про это? Хочу иметь глубокие знанию в этом. Добавлено через 4 часа 10 минут Нужно не просто про MySQL (просто про нее я на данный момент уже читаю), а про применении MySQL на С++. https://www.cyberforum.ru/ cpp-beginners/ thread284474.html Количество отр.элементов в строках C++
Помогите решить 3ю задачу..Срочно надо..
C++ Классы https://www.cyberforum.ru/ cpp-beginners/ thread284443.html
#include <iostream> #include <string.h> using namespace std; class basic{ public: char value; int len;
C++ Вывод непонятного текста https://www.cyberforum.ru/ cpp-beginners/ thread284415.html
Если я вбиваю эту программу в Dev-C++ #include <iostream> using namespace std; int main(){ setlocale(LC_ALL,"Russian"); char Fi; char Pr; char Te; cout<<"Выход "<<Fi<<endl; cout<<"Стек "<<Te<<endl;
C++ Нахождение максимума в функции
нужна помощь! Описать функцию MAX(A,N) вещественного типа, находящую максимальный элемент массива А, состоящего из N вещественных чисел. С помощью этой функции найти максимальные элементы массива А,В,С размера NA,NB,NC соответственно.
C++ Обойти конец файла. https://www.cyberforum.ru/ cpp-beginners/ thread284397.html
В файле с расширением .dat Находятся несколько концов файла-поэтому не могу считать его полностью. Как обойти эти хитрые концы файла?!
C++ Как сделать ввод в одну строку? как сделать ввод в одну строку, через нажатие ентера и отступа на N расстояние, такого типа: scanf("%d.%d.%d", &Year, &Month, &Day); если такое возможно, если нет, то как можно это осуществить? https://www.cyberforum.ru/ cpp-beginners/ thread284394.html Библиотеки под С++ для реализации SOAP 1.2 C++
Кто может посоветовать библиотеки для SOAP 1.2? Есть есть возможность, то скиньте ссылки на них. Если у кого есть примеры по данной теме (реализация клиента, сервера), или иная русскоязычная информаия по данной теме, прошу скинуть вот сюда. podchernyaevdv@mail.ru или оставить тут. Или есть какинть специфические, иные средства разработки для этого протокола? Добавлено через 7 часов 8...
C++ Ошибка в композиции классов. https://www.cyberforum.ru/ cpp-beginners/ thread284363.html
Приветствую вас! Прошу помощи, ибо уже не в силах себе помочь. Я новичек в кодинге, сейчас пишу игру Пакмана, но появилась проблема: есть класс Game: class Game { public: Game(); void Run() {Engine.Work(); } // вызов этого метода дает ошибку private:
C++ Найти в файле все весенние и осенние даты https://www.cyberforum.ru/ cpp-beginners/ thread284351.html
Всем Привет =) помогите кто нибуть пожалуйста! решить задачу на си Дан файл f, содержащий различные даты. Каждая дата - это число, месяц и год. Найти: а) год с наименьшим номером; б) все весенние даты; в) все осенние даты г) самую позднюю дату.
C++ помогите пожалуйста с решением задач на си:
Добрый день, помогите пожалуйста с решением задач на си: 1) Описать функцию Min(A,N) вещественного типа, находящую минимальный элемент массива A, состоящего из N вещественных чисел. С помощью этой функции найти минимальные элементы массивов A, B, C размера NA, NB, NC соответственно. 2)Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных побочной (начиная с...
C++ Проверить, пуст ли файл Как можно проверить пустоту файла? Поиск юзал. Добавлено через 17 минут fstream f; f.open("f.txt",ios::in);//открываем поток для чтения f>>temp.name;if (f.eof()){ cout<<"А файл то пуст :D"<<endl;f.close();} f.close(); Пришел к чему-то такому %-) https://www.cyberforum.ru/ cpp-beginners/ thread284342.html
4765 / 2575 / 892
Регистрация: 29.11.2010
Сообщений: 5,568
27.04.2011, 17:44 0

Тема: "Указатели". - C++ - Ответ 1593024

27.04.2011, 17:44. Показов 1035. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено как решение

Решение

Колода это просто множество из 52 бит (влезет в восемь байт).
"Тасования" нет. Есть только выбор случайного числа от 0 до 51 и установка соответствующего бита.
Все карты представлены числами от 0 до 51.
Например (на коленке):
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
66
67
68
#include <cstring>
#include <cstdlib>
#include <ctime>
#include <cassert>
#include <iostream>
#include <string>
 
// червы, бубны, трефы, пики
char *suits[] = { "H", "D", "C", "S" };
char *values[] = { "2", "3", "4", "5", "6", "7", "8", "9", "10",
                   "J", "Q", "K", "A" };
 
std::string Card(unsigned char card_number) {
  std::string result = values[card_number % 13];
  result += suits[card_number / 13];
  return std::string(values[card_number % 13]) +
         std::string(suits[card_number / 13]);
}
 
class Deck {
 public:
  Deck() : size_(52) {
    SetAll();
    srand(time(NULL));
  }
  void SetAll() {
    size_ = 52;
    memset(cards_, 255, 8);
  }
  bool Has(unsigned char card) {
    return (cards_[card / 8] & (1 << (card % 8))) != 0;
  }
  void Set(unsigned char card) {
    if ((cards_[card / 8] & (1 << (card % 8))) == 0) {
      cards_[card / 8] |= 1 << (card % 8);
      ++size_;
    }
  }
  void Unset(unsigned char card) {
    if ((cards_[card / 8] & (1 << (card % 8))) != 0) {
      cards_[card / 8] &= ~(1 << (card % 8));
      --size_;
    }
  }
  unsigned char Random() {
    assert(size_ > 0);
    unsigned char card;
    do {
      card = rand() % 52;
    } while (!Has(card));
    Unset(card);
    --size_;
    return card;
  }
 private:
  unsigned char cards_[8];
  size_t size_;
};
 
int main(int argc, char *argv[]) {
  Deck deck;
  unsigned char hand[5];
  for (int i = 0; i < 5; ++i) {
    hand[i] = deck.Random();
    std::cout << Card(hand[i]) << " ";
  }
  return 0;
}


Вернуться к обсуждению:
Тема: "Указатели". C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2011, 17:44
Готовые ответы и решения:

Программа кубики, тема указатели
Задание следующее. Написать приложение для игры пользователя в кубики. Выпадает случайное число...

Тема указатели, зачем они нужны
Для чего придумали указатели.... Добавлено через 1 минуту для того, что бы передавать адрес...

С++ Тема «Указатели и динамические массивы. Использование указателей в качестве аргументов функций»
В целочисленном массиве Х(N) удалить все элементы, расположенные между макси-мальным и минимальным...

Указатели и указатели на указатели, а также типы данных
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс идет медленно....

1
27.04.2011, 17:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2011, 17:44
Помогаю со студенческими работами здесь

Почему Лафоре использует указатели на указатели, вместо обмена значениями указателей?
Доброго времени суток! Задался теоретическим вопросом. Читал пример из книги Лафоре...

Через указатели на указатели посчитать сумму двух чисел и записать в третье
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье. 2. Написать...

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

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов?
Есть массив int **mas; mas=new int*; // выделил место под пять строк, верно ? mas=new int;//...

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной
Мой код. #include &lt;iostream&gt; #include &lt;stdlib.h&gt; #include&lt;iomanip&gt; using namespace std; ...

Указатели на указатели: для чего они могут понадобятся?
Изучаю C++, дошёл до указателей на указатели. Там пишут что эта тема не обязательна. Для чего они...

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