c语言有一副牌52张。每一张牌是构造数据类型,边一段程序完成其初始化
时间: 2024-02-03 12:15:10 浏览: 21
可以使用结构体来表示一张牌,结构体包含两个成员变量:花色和点数。在初始化时,可以使用一个循环来遍历所有的花色和点数,构造出52张牌。
示例代码如下:
```c
#include <stdio.h>
// 定义花色枚举类型
enum Suit {
CLUB, DIAMOND, HEART, SPADE
};
// 定义牌面值枚举类型
enum Rank {
ACE = 1, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING
};
// 定义一张牌的结构体
struct Card {
enum Suit suit; // 花色
enum Rank rank; // 点数
};
int main() {
struct Card deck[52]; // 定义一副牌
int i, j;
for (i = 0; i < 4; i++) { // 遍历花色
for (j = 1; j <= 13; j++) { // 遍历点数
deck[i * 13 + j - 1].suit = i;
deck[i * 13 + j - 1].rank = j;
}
}
// 打印出一副牌
for (i = 0; i < 52; i++) {
printf("Card %d: ", i+1);
switch(deck[i].rank) {
case ACE:
printf("Ace");
break;
case JACK:
printf("Jack");
break;
case QUEEN:
printf("Queen");
break;
case KING:
printf("King");
break;
default:
printf("%d", deck[i].rank);
break;
}
printf(" of ");
switch(deck[i].suit) {
case CLUB:
printf("Clubs");
break;
case DIAMOND:
printf("Diamonds");
break;
case HEART:
printf("Hearts");
break;
case SPADE:
printf("Spades");
break;
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
Card 1: Ace of Clubs
Card 2: 2 of Clubs
Card 3: 3 of Clubs
Card 4: 4 of Clubs
Card 5: 5 of Clubs
Card 6: 6 of Clubs
Card 7: 7 of Clubs
Card 8: 8 of Clubs
Card 9: 9 of Clubs
Card 10: 10 of Clubs
Card 11: Jack of Clubs
Card 12: Queen of Clubs
Card 13: King of Clubs
Card 14: Ace of Diamonds
Card 15: 2 of Diamonds
Card 16: 3 of Diamonds
Card 17: 4 of Diamonds
Card 18: 5 of Diamonds
Card 19: 6 of Diamonds
Card 20: 7 of Diamonds
Card 21: 8 of Diamonds
Card 22: 9 of Diamonds
Card 23: 10 of Diamonds
Card 24: Jack of Diamonds
Card 25: Queen of Diamonds
Card 26: King of Diamonds
Card 27: Ace of Hearts
Card 28: 2 of Hearts
Card 29: 3 of Hearts
Card 30: 4 of Hearts
Card 31: 5 of Hearts
Card 32: 6 of Hearts
Card 33: 7 of Hearts
Card 34: 8 of Hearts
Card 35: 9 of Hearts
Card 36: 10 of Hearts
Card 37: Jack of Hearts
Card 38: Queen of Hearts
Card 39: King of Hearts
Card 40: Ace of Spades
Card 41: 2 of Spades
Card 42: 3 of Spades
Card 43: 4 of Spades
Card 44: 5 of Spades
Card 45: 6 of Spades
Card 46: 7 of Spades
Card 47: 8 of Spades
Card 48: 9 of Spades
Card 49: 10 of Spades
Card 50: Jack of Spades
Card 51: Queen of Spades
Card 52: King of Spades
```