使用結構定義一副撲克牌,并對變量賦值
撲克牌有四種花色:草花,方塊,紅心和黑桃,可將花色說明為枚舉類型。撲克牌類型為結構類型,包含兩個成分:分別存儲牌的花色和牌的面值,其中面值為字符數組。
下面是代碼的實現部分:
~~~
#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;
}
~~~
下面是程序的輸出結果:

總的來說,這個程序是相對比較簡單的,在這里,我們學習使用了結構的定義,以及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實現兩個文件的內容輸出到同一個屏幕