c语言发牌程序随机函数,C语言洗牌发牌程序

本文介绍了一个使用C语言实现的洗牌算法,通过数组结构来管理一副52张的标准扑克牌。该程序首先初始化所有牌的花色和数字,然后进行随机洗牌操作,并展示了洗牌前后的牌序。

11d828355c17e14f5134153587d4cc22.png

望远

#include 

#include

#include

typedef struct{

char *color;

char *number;

}Card;

void shuffle(Card cards[][13],int n,int m)

{

srand(time(0));

Card card[52];

Card tempCard;

int i,j;

for(i=0;i

{

for(j=0;j

{

card[i*13+j]=cards[i][j];

}

}

for(i=0;i<52;i++)

{

int temp=rand()%(52-i)+i;

tempCard=card[i];

card[i]=card[temp];

card[temp]=tempCard;

}

for(i=0;i<4;i++)

{

for(j=0;j<13;j++)

{

cards[i][j]=card[i*13+j];

}

}

}

void main()

{

char colors[4][10]={"红心","梅花","方块","黑桃"};

char number[][4]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

Card cards[4][13];//共52张牌(不考虑大小王)

int i,j;

for(i=0;i<=3;i++)

{

for(j=0;j<=12;j++)

{

cards[i][j].color=colors[i];

cards[i][j].number=number[j];

}

}

printf("洗牌前:\n");

for(i=0;i<=3;i++)

{

for(j=0;j<=12;j++)

{

printf("%s%s ",cards[i][j].color,cards[i][j].number);

}

printf("\n");

}

shuffle(cards,4,13);

printf("洗牌后:\n");

for(i=0;i<=3;i++)

{

for(j=0;j<=12;j++)

{

printf("%s%s ",cards[i][j].color,cards[i][j].number);

}

printf("\n");

}

}ps:我这里有一个用数组做的,希望对你有帮助。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值