C/C++教程

【C语言程序设计第四版】例11-6代码

本文主要是介绍【C语言程序设计第四版】例11-6代码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

struct card{
    int suit;
    int face;
};

void deal(struct card *wdeck){
    int i , m, t;
    static int temp[52] = {0};
    
    srand(time(NULL));   // 放入时间戳作为随机种子
    for (i = 0; i < 52; i++) {
        while (1) {
            m = rand() % 52;
            if (temp[m] == 0) {
                break;
            }
        }
        temp[m] =  1;     // 找出一张还没定义的排
        // 发牌的逻辑设计巧妙,值得学习
        t = (i % 4) * 13 + (i /4);
        wdeck[t].suit = m / 13;
        wdeck[t].face = m % 13;
    }
}

int main(void){
    
    int i;
    struct card deck[52];
    const char *suit[] = {"Heart", "Diamond", "Club", "Spade"};
    const char *face[] = {"A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3", "2"};
    
    deal(deck);
    for (i=0; i<52; i++) {
        if (i % 13 == 0) {
            printf("Player %d:\n", i/13+1);
        }
        printf("%s of %s\n", face[deck[i].face], suit[deck[i].suit]);
    }
    
    return 0;
}

 

这篇关于【C语言程序设计第四版】例11-6代码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!