千家信息网

C语言怎么实现发牌洗牌

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本文小编为大家详细介绍"C语言怎么实现发牌洗牌",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言怎么实现发牌洗牌"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.模拟发
千家信息网最后更新 2025年11月07日C语言怎么实现发牌洗牌

本文小编为大家详细介绍"C语言怎么实现发牌洗牌",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言怎么实现发牌洗牌"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1.模拟发牌程序

通过写两个函数模块来编写洗牌程序和打印的发牌程序

2.编写洗牌程序

void shuffle(char cards[][10],int n){    int i=54;    char ca,cb,ct[10];    srand((unsigned)time(NULL));        while(i--){        ca=rand()%54;        cb=rand()%54;                strcpy(ct,cards[ca]);        strcpy(cards[ca],cards[cb]);        strcpy(cards[cb],ct);            }        }

3.编写打印的发牌程序

void printCard(char cards[][10],int n){    int i,rn=0;    printf("第一个人:\n");    for(i=0;i<17;i++){        if(rn%5==0)            printf("\n");        rn++;        printf("%s      ",cards[i]);            }    printf("\n\n第二个人:\n");    rn=0;    for(i=17;i<33;i++){        if(rn%5==0)            printf("\n");        rn++;        printf("%s      ",cards[i]);            }    printf("\n\n第三个人:\n");    rn=0;    for(i=33;i<50;i++){        if(rn%5==0)            printf("\n");        rn++;            printf("%s      ",cards[i]);        }    printf("\n\n底牌:\n");    for(i=51;i<54;i++){        printf("%s      ",cards[i]);            }    printf("\n");    getchar();}

4.在主函数预定义和调用

main(){    system("color 0f");    char cards[][10]={    "红桃 2","红桃 3","红桃 4","红桃 5","红桃 6","红桃 7","红桃 8","红桃 9","红桃 10","红桃 J","红桃 Q","红桃 K","红桃 A",    "方块 2","方块 3","方块 4","方块 5","方块 6","方块 7","方块 8","方块 9","方块 10","方块 J","方块 Q","方块 K","方块 A",    "梅花 2","梅花 3","梅花 4","梅花 5","梅花 6","梅花 7","梅花 8","梅花 9","梅花 10","梅花 J","梅花 Q","梅花 K","梅花 A",            "黑桃 2","黑桃 3","黑桃 4","黑桃 5","黑桃 6","黑桃 7","黑桃 8","黑桃 9","黑桃 10","黑桃 J","黑桃 Q","黑桃 K","黑桃 A",    "大王","小王"     };    int n = 54;     shuffle(cards,n);    printCard( cards, n);        return 0;}

5.最终程序

#include#include#include #includevoid shuffle(char cards[][10],int n);void printCard(char cards[][10],int n);main(){    system("color 0f");    char cards[][10]={    "红桃 2","红桃 3","红桃 4","红桃 5","红桃 6","红桃 7","红桃 8","红桃 9","红桃 10","红桃 J","红桃 Q","红桃 K","红桃 A",    "方块 2","方块 3","方块 4","方块 5","方块 6","方块 7","方块 8","方块 9","方块 10","方块 J","方块 Q","方块 K","方块 A",    "梅花 2","梅花 3","梅花 4","梅花 5","梅花 6","梅花 7","梅花 8","梅花 9","梅花 10","梅花 J","梅花 Q","梅花 K","梅花 A",            "黑桃 2","黑桃 3","黑桃 4","黑桃 5","黑桃 6","黑桃 7","黑桃 8","黑桃 9","黑桃 10","黑桃 J","黑桃 Q","黑桃 K","黑桃 A",    "大王","小王"     };    int n = 54;     shuffle(cards,n);    printCard( cards, n);        return 0;}void shuffle(char cards[][10],int n){    int i=54;    char ca,cb,ct[10];    srand((unsigned)time(NULL));        while(i--){        ca=rand()%54;        cb=rand()%54;                strcpy(ct,cards[ca]);        strcpy(cards[ca],cards[cb]);        strcpy(cards[cb],ct);            }        }void printCard(char cards[][10],int n){    int i,rn=0;    printf("第一个人:\n");    for(i=0;i<17;i++){        if(rn%5==0)            printf("\n");        rn++;        printf("%s      ",cards[i]);            }    printf("\n\n第二个人:\n");    rn=0;    for(i=17;i<33;i++){        if(rn%5==0)            printf("\n");        rn++;        printf("%s      ",cards[i]);            }    printf("\n\n第三个人:\n");    rn=0;    for(i=33;i<50;i++){        if(rn%5==0)            printf("\n");        rn++;            printf("%s      ",cards[i]);        }    printf("\n\n底牌:\n");    for(i=51;i<54;i++){        printf("%s      ",cards[i]);            }    printf("\n");    getchar();}

6.1程序结果

6.2

读到这里,这篇"C语言怎么实现发牌洗牌"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

方块 梅花 黑桃 红桃 程序 个人 语言 文章 内容 函数 大王 底牌 小王 二个人 妥当 两个 思路 新知 更多 模块 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 计算机网络技术是拉网线嘛 北京掌上通网络技术股份有 揭阳无线软件开发厂家直销 数据库审批工具 数据库原理与技术的课程设计 家教管理系统程序代码数据库 黑魂服务器维护可以单机吗 freepbx 软件开发 dhcp服务器搭建内网oa 电大有计算机网络技术本科吗 网络安全任务等级 数据库系统工程师证件照 南京米云互联网科技有限公司 南京市网络安全处处长 铁路网络安全会议讲话稿 国内知名网络技术公司 公司网络安全准入控制系统推荐 聊天软件开发服务价格 维护网络安全宣誓词 数据库技术及应用考试答案 中国网络安全检查小组组长 查询疾病靶点数据库 游戏出现安全连接到服务器 利用数组输入数据库 长春软件开发培训班学费 开源java数据库连接工具 软件开发绩效考核多久一次 3级数据库技术值钱吗 财务数据库满了 多少年不得从事网络安全管理和
0