扑克牌的结构定义
2015-06-16 10:49
148 查看
使用结构定义一副扑克牌,并对变量赋值
扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。
下面是代码的实现部分:
下面是程序的输出结果:
![](http://img.blog.csdn.net/20150616104703592)
总的来说,这个程序是相对比较简单的,在这里,我们学习使用了结构的定义,以及enum枚举的使用方法。
在实际问题中,有些变量的取值被限定在一个有限的范围内。例如一个星期有7天,一年只有12个月等,这些都可以使用枚举enum来定义。需要说明的是,枚举类型是一种基本数据类型,而不是一种构造结构。
扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。
下面是代码的实现部分:
#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来定义。需要说明的是,枚举类型是一种基本数据类型,而不是一种构造结构。
相关文章推荐
- 一个丝滑的全屏滑动返回手势
- MySQL数据库常用SQL语句--“表操作”
- linux系统相关命令
- Implement Stack using Queues
- Windows/Linux下引用jar包,并用javac/java编译运行
- iOS通关书单,Android可入
- Object-C 中各数据类型转换 NSData转NSString,Byte,UIImage
- OpenSceneGraph控制模型
- ASP.NET缓存处理类实例
- 外键的作用
- 卷积,DFT,FFT,图像FFT,FIR 和 IIR 的物理意义。
- 年轻的时候,背后有把刀
- java多线程消息队列的实现
- error splicing file: file too large解决方法
- 【第四章】 资源 之 4.3 访问Resource ——跟我学spring3
- jquery validate 配置
- USB那点事3 -使用端口2作为custom HID的传输(转)
- 'org.springframework.orm.hibernate3.LocalSessionFactoryBean' not found解决方法
- JS:跟随鼠标移动的图片,兼容IE与DOM浏览器(已在实际中用懂啊)
- Qt QLineEdit 限制输入类型以及大小Int 和double