Присвоить с помощью цикла имена карт в колоде - C (СИ)
Формулировка задачи:
#include <iostream> #include <windows.h> #include <stdlib.h> #include <time.h> using namespace std; struct Cards { char *suit; char *face; }; void main() { int N; SetConsoleOutputCP(1251); cout << "Введите размер колоды (36 или 52):"; cin>>N; Cards *pDeck= new Cards[N]; static const char *Psuit[4]={"Червы","Бубны","Трефы","Пики"}; static const char *Pface[9]={"Туз","6","7","8","9","10","Валет","Дама","Король"}; for (int i = 0; i < N; i++){ pDeck[i].suit=new char[256]; pDeck[i].suit=Psuit[i%4]; pDeck[i].face=Pface[i%9]; } delete []pDeck; }
Решение задачи: «Присвоить с помощью цикла имена карт в колоде»
#include <stdio.h> #include <conio.h> #include<string> #include <iostream> using namespace std; struct Card { char* _pSuit; char* _pFace; }; static const char* pSuit[4] = { "Червы", "Бубны", "Трефы", "Пики" }; static const char* pFace[9] = { "Туз", "6", "7", "8", "9", "10", "Валет", "Дама", "Король" }; int main(int argc,char** argv) { int N = 0; SetConsoleOutputCP(1251); cout << "Введите размер колоды (36 или 52):"; cin >> N; Card* pDeck = new Card[N]; for (int ii = 0; ii < N; ++ii) { pDeck[ii]._pSuit = (char*)pSuit[ii % 4]; pDeck[ii]._pFace = (char*)pFace[ii % 9]; printf("%2d:%-10s%-10s\n",ii,pDeck[ii]._pSuit,pDeck[ii]._pFace); } getch(); delete[] pDeck; return 0; }
Объяснение кода листинга программы
В этом коде создается структура данных Card
, которая содержит два указателя на строки - _pSuit
и _pFace
. Эти строки представляют собой масти и номиналы игральных карт соответственно.
Затем определяются две константные массивы строк - pSuit
и pFace
, которые содержат все возможные масти и номиналы карт.
Функция main
запрашивает у пользователя размер колоды (36 или 52) и создает динамический массив типа Card
этого размера.
Затем происходит итерация по всем элементам массива pDeck
. Внутри цикла каждый элемент массива инициализируется указателями на случайную масть и номинал из соответствующих массивов.
После этого выводится на экран информация о карте с помощью функции printf
.
В конце программы вызывается функция getch
для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.
И наконец, динамический массив pDeck
освобождается с помощью функции delete[]
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д