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

本文通过C语言实现了一副扑克牌的结构体定义及赋值过程,使用枚举类型表示花色,通过结构体存储每张牌的花色和数值。程序详细展示了如何初始化并打印一副52张扑克牌的全部信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实例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 //一个字符串包括字符以及末尾的‘\0',因为有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?'\n':'\t');
48     return 0;
49 }

 

转载于:https://www.cnblogs.com/llccbb1/p/9749336.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值