您的位置:首页 > 其它

扑克牌的结构定义

2015-06-16 10:49 148 查看
使用结构定义一副扑克牌,并对变量赋值

扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。

下面是代码的实现部分:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/**
 * 使用结构定义一副扑克牌,
 * 并对变量赋值
 *
 * 扑克牌有四种花色:草花,方块,红心
 * 和黑桃,可将花色说明为枚举类型。扑克牌类型
 * 为结构类型,包含两个成分:分别存储
 * 牌的花色和牌的面值,其中面值为字符数组
 */

enum suits{CLUBS,DIAMONDS,HEARTS,SPADES};

/** 纸牌结构 **/
struct card{
    enum suits suit;
    char value[3];
};

/** 52张牌 **/
struct card cards[52];

/** 纸牌的面值 **/
char values[][3] = {"A","2","3","4","5","6",
    "7","8","9","10","J","Q","K"};

/** 纸牌类型名称 **/
char names[][10] = {"CLUBS","DIAMONDS","HEARTS","SPADES"};

int main()
{
    int i,j;
    enum suits s;

    for(i = 0;i < 13;i++){
        for(s = CLUBS;s <= SPADES;s++){
            j = i * 4 + s;
            cards[j].suit = s;
            strcpy(cards[j].value,values[i]);
        }
    }

    for(j = 1;j <= 52;j++){
        printf("<%s\t%s>\t",names[cards[j].suit],cards[j].value);

        if(j % 4 == 0){
            printf("\n");
        }
    }
    return 0;
}


下面是程序的输出结果:



总的来说,这个程序是相对比较简单的,在这里,我们学习使用了结构的定义,以及enum枚举的使用方法。

在实际问题中,有些变量的取值被限定在一个有限的范围内。例如一个星期有7天,一年只有12个月等,这些都可以使用枚举enum来定义。需要说明的是,枚举类型是一种基本数据类型,而不是一种构造结构。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: