使用结构定义一副扑克牌,并对变量赋值
扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。
下面是代码的实现部分:
~~~
#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;
}
~~~
下面是程序的输出结果:
![这里写图片描述](https://box.kancloud.cn/2016-05-24_5743c07645aed.jpg "")
总的来说,这个程序是相对比较简单的,在这里,我们学习使用了结构的定义,以及enum枚举的使用方法。
在实际问题中,有些变量的取值被限定在一个有限的范围内。例如一个星期有7天,一年只有12个月等,这些都可以使用枚举enum来定义。需要说明的是,枚举类型是一种基本数据类型,而不是一种构造结构。
- 前言
- 实例一:HelloWorld
- scanf函数学习
- 实数比较
- sizeof()保留字获取类型的大小
- 自增/自减学习
- C学习if条件判断和for循环
- C实现的九九乘法表
- C实现一个比较简单的猜数游戏
- 使用C模拟ATM练习switch..case用法
- 记录一个班级的成绩练习一维数组
- C数组实现矩阵的转置
- C二维数组练习
- 利用数组求前n个质数
- C实现万年历
- C实现数组中元素的排序
- C实现任意进制数的转化
- C判断一个正整数n的d进制数是否是回文数
- C使用递归实现前N个元素的和
- 钢材切割问题
- 使用指针比较整型数据的大小
- 指向数组的指针
- 寻找指定元素
- 寻找相同元素的指针
- 整数转换成罗马数字
- 字符替换
- 从键盘读入实数
- C实现字符行排版
- C实现字符排列
- C实例--判断一个字符串是否是回文数
- 通讯录的输入输出
- 扑克牌的结构定义
- 使用“结构”统计学生成绩
- 报数游戏
- 模拟社会关系
- 统计文件中字符个数
- C实现两个文件的内容输出到同一个屏幕