Переменные перечисляемого типа
В программе можно ввести свой тип данных называемый перечисляемым, который объявляется следующим образом:
enum имя_типа {именная константа_1, …, именная константа_n};
например:
enum name{Anna, Vera, Masha, Nina, Ira};
Переменная типа name определяется следующим образом:
enum name girl; т.е. переменная girl может принимать значения из списка перечисленных в фигурных скобках. Каждому значению из списка соответствует порядковое число начиная с нуля, т.е. в фигурных скобках определены именные константы, т.е. константы целого типа: Anna=0, Vera=1 и т.д.
В программе можно определить переменные типа перечисление без задания типа (только одного). Определение имеет вид:
enum { Anna, Vera, Masha, Nina, Ira } girl_1,girl_2,girl_new=Nina; т.е. girl_1, girl_2, girl_new переменные данного типа.
Именные константы могут задаваться не по порядку, например:
enum name{ Anna=1, Vera, Masha=5, Nina, Ira=9 } girl_1,girl_2,girl_new=Nina
В этом случае значения именных констант будут следующие:
Anna=1, Vera=2, Masha=5, Nina=6, Ira=9
Значения констант могут повторяться, например:
enum name{ Anna, Vera=1, Masha=5, Nina=Vera-1, Ira=9 };
В этом случае значения именных констант будут следующие:
Anna=0, Vera=1, Masha=5, Nina=0, Ira=9
Именные константы списка имеют тип int. Переменные типа enum могут использоваться в индексах выражения, как операнды в арифметических выражениях и в операции отношения.Именные константы из списка перечисление эквивалентно ее численному значению. Именные константы можно устанавливать как положительные, так и отрицательные значения.
При объявления типа перечисление необходимо соблюдать следующие правила:
- Идентификаторы в списке перечисление не должны совпадать с другими идентификаторами той же области видимости;
- Объявляемый тип перечисление (имя) должно быть отлично от других имен типов вводимых пользователем в той же области видимости;
- Именные константы можно устанавливать одинаковые (повторяющиеся) значения, однако имена в списке должны быть разными.
2.Игрок бросает кости. Каждая кость имеет 6 граней, т.е. 1, 2, 3, 4, 5, 6. После броска вычисляется сумма цифр. Если сумма первого броска сумма = 7 или 11, то игрок выиграл. Если сумма первого броска сумма = 2, 3 или 12, то игрок проиграл. (т.е. выиграл “банк”). Если сумма после первого броска сумма = 4, 5, 6, 8, 9 или 10, то эта сумма становится “очком” игрока. Чтобы выиграть, игрок бросает кости до тех пор, пока не выпадет сумма равная его очкам. Игрок проигрывает если в течении бросков выпадет сумма =7.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
Int rollDice();
Void main()
{
enum Status {CONTINUE, WON, LOST};
Int sum,myPoint;
Status gameStatus;
Srand(time(NULL));
sum=rollDice();
Switch(sum)
{
case 7: case 11:
gameStatus = WON;
Break;
case 2: case 3: case 12:
gameStatus= LOST;
Break;
default:
gameStatus= CONTINUE;
myPoint=sum;
printf(“Ochki: %d\n”,myPoint);
Break;
}
while(gameStatus== CONTINUE)
{
sum=rollDice();
if(sum==myPoint)
gameStatus=WON;
Else
if(sum==7)
gameStatus=LOST;
}
if(gameStatus==WON)
printf(“You are WON!!!!\n”);
Else
printf(“You are LOST!!!!\n”);
}
int rollDice(){
Не нашли, что искали? Воспользуйтесь поиском:
|