给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里

给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里

 

一共是54张牌,只要把这54张牌随意排列就行,需要使用随机产生54个数。

void main() 

{

    int a[54] ,i ,r ,tmp;

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

     {

           a[i] = i;    //初始化,给每个牌给不同的值

     }  

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

    {

         r = rand()%54; //随机产生0~53之间的值

         tmp = a[r];   //把下标为r的这个位置的纸牌给 tmp

         a[r]  = a[i];  // 把下标为i的这个位置的纸牌给下标为r位置的纸牌

         a[i]  = tmp;  //把下标为r的这个位置上的纸牌给位置为i的纸牌

    } //这样循环操作54次,保证54个位置上的纸牌都能变换,但是不保证和原来的不相同。

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

   {

     printf("%2d\n ",a[i]);

   }

   

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值