实例33:

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

思路:

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

程序代码:

 #include <stdio.h>
#include <stdlib.h>
#include <string.h> enum suits{CLUBS, DIAMONDS, HEARTS, SPADES};
/*可以将这几个取值等价为0、1、2、3

CLUBS->0
DIAMONDS->1
HEARTS->2
SPADES->3
*/ /*定义一个纸牌结构体,包含了纸牌的两个属性
1、花色
2、数值(因为有A、J、Q这种类型的值,所以用char类型)
*/
struct card
{
enum suits suit;
char value[];
}; struct card deck[]; //一副52张的扑克牌
char cardval[][] = {"A","","","","","","","","","","J","Q","K"};
//是一个二维字符数组,但是可以看做字符串数组,因为这个字符数组的第二维的大小可以看做字符串的大小
//一个字符串包括字符以及末尾的‘\0',因为有10所以字符串数组的第二维定义为3
char suitname[][] = {"CLUBS", "DIAMONDS", "HEARTS", "SPADES"}; int main()
{
int i,j;
enum suits s; //循环,给deck赋值。
for(i=; i<=; i++)
{
for(s=CLUBS; s<= SPADES; s++)
{
j=i*+s;
deck[j].suit = s;
strcpy(deck[j].value,cardval[i]);
}
} for(j=; j<; j++)
printf("(%s%3s)%c",suitname[deck[j].suit],deck[j].value, j%==?'\n':'\t');
return ;
}

C语言实例解析精粹学习笔记——33(扑克牌的结构表示)的更多相关文章

  1. C语言实例解析精粹学习笔记——34(用“结构”统计学生成绩)

    实例34: 设学生信息包括学号.姓名和五门功课的成绩,要求编写输入输出学生信息的函数.在输入学生信息后,以学生成绩的总分从高到低顺序输出学生信息. 思路: 程序引入一个结构数组依次存储输入的学生信息, ...

  2. C语言实例解析精粹学习笔记——18

    <C语言实例解析精粹>中编译环境采用的是Turbo C 2.0.但是这个编译器年代久远,较新的编译器对书中的某些例子支持不好,在学习的时候同时做一些笔记. 实例18:将一个无符号整数转换为 ...

  3. C语言实例解析精粹学习笔记——35(报数游戏)

    实例35: 设由n个人站成一圈,分别被编号1,2,3,4,……,n.第一个人从1开始报数,每报数位m的人被从圈中推测,其后的人再次从1开始报数,重复上述过程,直至所有人都从圈中退出. 实例解析: 用链 ...

  4. C语言实例解析精粹学习笔记——32

    实例32: 编制一个包含姓名.地址.邮编和电话的通讯录输入和输出函数. 思路解析: 1.用结构体来完成姓名.地址.邮编和电话的组合. 2.结构体指针的使用. 3.malloc的使用 4.scanf函数 ...

  5. C语言实例解析精粹学习笔记——42(插入排序)

    实例说明: 将一个整数数组按从小到大的顺序进行排序.(主要学习基本的插入排序和改进的冒泡排序的算法和应用) 思路1: 从第一个数据开始,分别比较其后的数据,若比它小,则将这两个数的位置交换:从第一个数 ...

  6. C语言实例解析精粹学习笔记——36(模拟社会关系)

    实例: 设计一个模拟社会关系的数据结构,每个人的信息用结构表示,包含名字.性别和指向父亲.母亲.配偶.子女的指针(只限两个子女).要求编写以下函数: (1)增加一个新人的函数 (2)建立人与人之间关系 ...

  7. C语言实例解析精粹学习笔记——31

    实例31: 判断字符串是否是回文 思路解析: 引入两个指针变量(head和tail),开始时,两指针分别指向字符串的首末字符,当两指针所指字符相等时,两指针分别向后和向前移动一个字符位置,并继续比较, ...

  8. C语言实例解析精粹学习笔记——30

    实例30: 用已知字符串s中的字符,生成由其中n个字符组成的所有字符排列.设n小于字符串s的字符个数,其中s中的字符在每个排列中最多出现一次.例如,对于s[]="abc",n=2, ...

  9. C语言实例解析精粹学习笔记——28

    实例28:从键盘读入实数 题目要求: 编制一个从键盘读入实数的函数readreal(double *rp).函数将读入的实数字符列转换成实数后,利用指针参数rp,将实数存于指针所指向的变量*rp. 思 ...

随机推荐

  1. 大数据的正确用法你get到了吗?

    Azure 镜像市场已于2016年9月21日正式上线,在这个统一的集成平台中,客户可以轻松地浏览.搜索和选择一系列来自第三方的应用和解决方案,并可以将其快速一键部署到 Azure 实例当中. 在移动为 ...

  2. supersocket 通过配置文件启动服务 总是 初始化失败的 解决办法

    <serverTypes> <add name="APPServerType" type="TMPServer.APP.APPServer, TMPSe ...

  3. C#发送电子邮件 (异步) z

    ///验证电子邮件的正则表达式   string emailStr = @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([ ...

  4. 什么是SWP文件?能否删除swp文件?

    SWP意思就是交换文件..SWP是各种操作系统(Windows或Linux)使用的交换文件的文件扩展名. 可以安全地清理SWP文件以释放磁盘空间. 要清理SWP文件,请按照以下步骤操作: 运行WinU ...

  5. leetcode 62、Unique Paths

    A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...

  6. Android 回调的理解,觉得写得好就转过来。。。收藏一下

    转自:一个经典例子让你彻彻底底理解java回调机制 以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所 ...

  7. Codeforces Round #432 (Div. 2)

    A. Arpa and a research in Mexican wave Arpa is researching the Mexican wave. There are n spectators ...

  8. HDU 4278 卡特兰,区间DP

    题意:每个人有一个DI值,现在有一个小黑屋,这些人的顺序可以利用这个小黑屋调整,调整方式是入栈出栈方式,也就是说,这里的方案是有卡特兰数个方式. 调整后使得 d1*0 + d2*1 + d3*2 + ...

  9. Do not mutate vuex store state outside mutation handlers.

    组件代码: selectItem(item,index) { this.selectPlay({ list: this.songs, index }) }, ...mapActions([ 'sele ...

  10. SpringBoot非官方教程 | 第十三篇:springboot集成spring cache

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springboot/2017/07/11/springboot13-springcache/ 本文出自方志朋的博 ...