扑克牌结构体
时间: 2023-06-21 13:11:21 浏览: 175
一个基本的扑克牌结构体可以包含以下字段:
```
struct Poker {
int suit; // 花色:0-黑桃,1-红心,2-梅花,3-方块
int rank; // 点数:2-10,11-J,12-Q,13-K,14-A
};
```
这里使用整数来表示花色和点数,也可以使用枚举类型来表示。在实际使用中,还可以添加一些其他的字段,比如是否被翻面、是否已经被抽取等等。
相关问题
结构体表示52张扑克牌c语言
以下是C语言中使用结构体表示52张扑克牌的代码:
```c
//定义扑克牌花色的枚举类型
enum Suit {
SPADE, //黑桃
HEART, //红桃
CLUB, //梅花
DIAMOND //方块
};
//定义扑克牌点数的枚举类型
enum Rank {
ACE, //A
TWO, //2
THREE, //3
FOUR, //4
FIVE, //5
SIX, //6
SEVEN, //7
EIGHT, //8
NINE, //9
TEN, //10
JACK, //J
QUEEN, //Q
KING //K
};
//定义扑克牌结构体
struct Card {
enum Suit suit; //花色
enum Rank rank; //点数
};
//定义扑克牌数组
struct Card deck[52];
//初始化扑克牌数组
void initDeck(struct Card *deck) {
int i, j;
for (i = 0; i < 4; i++) {
for (j = 0; j < 13; j++) {
deck[i * 13 + j].suit = i;
deck[i * 13 + j].rank = j;
}
}
}
```
题目描述 自定义结构体表示一张扑克牌,包含类型——黑桃、红桃、梅花、方块、王;大小——2,3,4,5,6,7,8,9,10,J,Q,K,A,小王(用0表示)、大王(用1表示)。输入n,输入n张扑克牌信息,从大到小输出它们的排序结果。 假设扑克牌的排序规则是大王、小王为第一大、第二大,剩余52张扑克牌按照先花色后大小排序。 花色:黑桃>红桃>梅花>方块。 大小: A>K>Q>J>>10>9>…>2。java版本
以下是 Java 版本的实现代码:
```java
import java.util.*;
public class PokerSort {
static class Poker implements Comparable<Poker> {
int type; // 0: 小王, 1: 大王, 2-5: 黑桃、红桃、梅花、方块
int num; // 0-12: 2-10, J-Q-K-A
public Poker(int type, int num) {
this.type = type;
this.num = num;
}
@Override
public int compareTo(Poker p) {
if (this.type == p.type) {
return Integer.compare(this.num, p.num);
} else {
return Integer.compare(this.type, p.type);
}
}
@Override
public String toString() {
String[] types = {"小王", "大王", "黑桃", "红桃", "梅花", "方块"};
String[] nums = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"};
return types[type] + " " + nums[num];
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Poker> pokers = new ArrayList<>();
for (int i = 0; i < n; i++) {
int type = sc.nextInt();
int num = sc.nextInt();
pokers.add(new Poker(type, num));
}
Collections.sort(pokers, Collections.reverseOrder());
for (Poker poker : pokers) {
System.out.println(poker);
}
}
}
```
输入格式为:
```
n
type1 num1
type2 num2
...
typen numn
```
其中 n 表示扑克牌的数量,type 和 num 分别表示扑克牌的花色和大小。输出的结果即为从大到小排列的扑克牌信息。
阅读全文