1. 程式人生 > 其它 >C語言程式設計-現代方法 第二版 第8.2.2 小節程式碼 發牌

C語言程式設計-現代方法 第二版 第8.2.2 小節程式碼 發牌

技術標籤:C語言程式設計-現代方法 第二版c語言程式設計

第8.2.2 小節程式碼 發牌

//This is a comment
//Author:King
//Time:2020/12/6
//Reference:C Programming:A Modern Approach,Second Edition

/***************************************************************
8.2.2 小節程式碼 發牌 
****************************************************************/

#include
<stdio.h>
#include <stdbool.h> // C99 only #include <time.h> #include <stdlib.h> #define NUM_SUITS 4 //4種花色 #define NUM_RANKS 13 //13個等級 int main(void) { bool in_hand[NUM_SUITS][NUM_RANKS]={false}; int rank,suit; int num_cards; const char rank_code[] = {'2','3','4','5','6'
,'7','8','9','t','j','q','k','a'}; const char suit_code[] = {'c','d','h','s'}; srand((unsigned) time(NULL)); //把time函式返回值傳遞給srand函式避免產生同樣的數 printf("Enter number of cards in hand:"); //說明需要發幾張牌 scanf("%d",&num_cards); printf("Your hand:"); while(num_cards >
0) { suit = rand() % NUM_SUITS; //限定在NUM_SUITS範圍 rank = rand() % NUM_RANKS; //限定在NUM_RANKS範圍 if(!in_hand[suit][rank]) { in_hand[suit][rank] = true; num_cards--; printf(" %c%c",rank_code[rank],suit_code[suit]); } } printf("\n"); system("pause"); //加入該函式後可以使得產生的exe單獨執行,不會發生閃退。也可以加入其它函式使得main函式無法返回即可。如while(1)、getchar() 等 return 0; }