模拟人工洗牌

本文介绍如何使用C语言实现模拟人工洗牌算法,通过编程技巧实现随机打乱数组元素顺序,是经典编程题的一个实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言实现

#include<stdio.h>
#include<stdlib.h>
struct card
	{
		int pips;   //从1到13. 1:A,11:J,12:Q,13:K 
		char suit;  //牌的花色。C:梅花 D:方块 H:红心 S:黑桃 
 	}; 
struct card deck[] =
{	{1,'C'},{2,'C'},{3,'C'},{4,'C'},{5,'C'},{6,'C'},
	{7,'C'},{8,'C'},{9,'C'},{10,'C'},{11,'C'},{12,'C'},{13,'C'},
	{1,'D'},{2,'D'},{3,'D'},{4,'D'},{5,'D'},{6,'D'},
	{7,'D'},{8,'D'},{9,'D'},{10,'D'},{11,'D'},{12,'D'},{13,'D'},
	{1,'H'},{2,'H'},{3,'H'},{4,'H'},{5,'H'},{6,'H'},
	{7,'H'},{8,'H'},{9,'H'},{10,'H'},{11,'H'},{12,'H'},{13,'H'},
	{1,'S'},{2,'S'},{3,'S'},{4,'S'},{5,'S'},{6,'S'},
	{7,'S'},{8,'S'},{9,'S'},{10,'S'},{11,'S'},{12,'S'},{13,'S'}
 };    //初始化一副牌
	
void swapcard(struct card *p,struct card *q) //交换两张牌  //形参为指向结构的指针 
{
	struct card temp;
	temp = *p; *p = *q; *q =temp;     //交换两个结构变量的值 
 }
                                                     
void shuffle(	struct card desk[])                    //模拟人工洗牌过程,形式参数为结构数组 
{
	int i,j;
	for(i=0;i<52;i++)
	{
		j=rand
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值