Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Моделирование высокоэффективной тасовки и раздачи карт




#include<stdio.h>

#include<stdlib.h>

#include<time.h>

struct card{

char *face;

char *suit;

};

Typedef struct card Card;

void fillDeck(Card *,char *[],char *[]);

void shuffle(Card *);

void deal(Card *);

Void main()

{

Card deck[52];

char *face[]={"Tuz", "2", "3", "4", "5",

"6", "7", "8", "9", "10", "Valet", "Dama","Korol"};

char *suit[]={"Chervi", "Bubni", "Trefi", "Piki"};

Srand(time(NULL));

FillDeck(deck,face,suit);

Shuffle(deck);

Deal(deck);

}

void fillDeck(Card *wDeck,char *wFace[],char *wSuit[])

{

Int i;

for(i=0;i<52;i++)

{

wDeck[i].face = wFace[i%13];

wDeck[i].suit = wSuit[i/13];

}

}

void shuffle(Card *wDeck)

{

Int i,j;

Card temp;

for(i=0;i<52;i++)

{

j=rand()%52;

temp=wDeck[i];

wDeck[j]=temp;

}

}

void deal(Card *wDeck)

{

Int i;

for(i=0;i<52;i++)

{

printf("%5s of %-8s%c",wDeck[i].face,wDeck[i].suit, (i+1)%2? '\t': '\n');

}

}

Объединения

Объединение – произвольный тип данных, подобный структуре, элементы которого разделяют одну и ту же область памяти. На различных этапах выполнение программы одни переменные могут оказаться невостребованными, в то время как другие, наоборот, используются только в этой части программы, поэтому объединения экономят пространство вместо того, чтобы впустую тратить память на не использующиеся в данный момент переменные. Элементы объединения могут принадлежать любому типу. Число байтов, используемая для хранения объединения, должно быть, по крайней мере, достаточным для хранения наибольшего из элементов. Ссылаться в данный момент времени можно только на один элемент и, соответственно, только один тип данных. Объединение объявляется с помощью ключевого слова union. Формат объединения тот же, что и в случае структуры.

#include<stdio.h>

union number{

int x;

float y;

};

 

void main()

{

union number value;

value.x=100;

printf("Put a value in the integer member\nand printf both members.\nint: %d\nfloat: %f",value.x,value.y);

value.y=100.0;

printf("\n\nPut a value in the floating member\nand printf both members.\nint: %d\nfloat: %f",value.x,value.y);

}

Допускается определение неименованного битого поля; такое поле используется как заполнитель структуры и служит для выравнивания следующего битого поля по границе новой ячейки памяти. Например:

struct example

{

unsigned a: 13;

unsigned: 0;

unsigned b: 4;

};

объявление битовое поле без имени длиной 0 бит для того, чтобы перескочить через оставшиеся биты (столько, сколько их будет) ячейки памяти, в которой хранится а, и выровнять b по границе следующей ячейки.

 

Пример моделирование высокоэффективной тасовки и раздачи карт с разъясняющий тип объединения:

#include<stdio.h>

struct bitCard{

unsigned face: 4;

unsigned suit: 2;

unsigned color: 1;

};






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных