zoukankan      html  css  js  c++  java
  • C语言实例解析精粹学习笔记——33(扑克牌的结构表示)

    实例33:

      使用“结构”定义一副扑克牌,并对变量赋值,输出结果

    思路:

      扑克牌有4种花色,用枚举类型表示花色,其他都是结构体的简单应用

    程序代码:

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <string.h>
     4 
     5 enum suits{CLUBS, DIAMONDS, HEARTS, SPADES};
     6 /*可以将这几个取值等价为0、1、2、3
     7  8     CLUBS->0
     9     DIAMONDS->1
    10     HEARTS->2
    11     SPADES->3
    12 */
    13 
    14 /*定义一个纸牌结构体,包含了纸牌的两个属性
    15     1、花色
    16     2、数值(因为有A、J、Q这种类型的值,所以用char类型)
    17 */
    18 struct card
    19 {
    20     enum suits suit;
    21     char value[3];
    22 };
    23 
    24 struct card deck[52];  //一副52张的扑克牌
    25 char   cardval[][2] = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
    26 //是一个二维字符数组,但是可以看做字符串数组,因为这个字符数组的第二维的大小可以看做字符串的大小
    27 //一个字符串包括字符以及末尾的‘',因为有10所以字符串数组的第二维定义为3
    28 char   suitname[][9] = {"CLUBS", "DIAMONDS", "HEARTS", "SPADES"};
    29 
    30 int main()
    31 {
    32     int i,j;
    33     enum suits s;
    34     
    35     //循环,给deck赋值。
    36     for(i=0; i<=12; i++)
    37     {
    38         for(s=CLUBS; s<= SPADES; s++)
    39         {
    40             j=i*4+s;
    41             deck[j].suit = s;
    42             strcpy(deck[j].value,cardval[i]);
    43         }
    44     }
    45 
    46     for(j=0; j<52; j++)
    47         printf("(%s%3s)%c",suitname[deck[j].suit],deck[j].value, j%4==3?'
    ':'	');
    48     return 0;
    49 }
  • 相关阅读:
    Valid Number
    ZigZag Conversion
    KMP
    [OJ#40]后宫佳丽
    [OJ#39]左手右手
    [COJ0968]WZJ的数据结构(负三十二)
    [COJ0970]WZJ的数据结构(负三十)
    [BZOJ2815][ZJOI2012]灾难
    [BZOJ1923][Sdoi2010]外星千足虫
    [BZOJ4034][HAOI2015]树上操作
  • 原文地址:https://www.cnblogs.com/llccbb1/p/9749336.html
Copyright © 2011-2022 走看看