广发英雄帖,诚征54(52)张扑克牌的洗牌算法
个人觉得就是数组打乱 不知道是否有神马成型的算法
2014-12-24 13:32
2014-12-24 13:34
2014-12-24 13:35
2014-12-24 14:11
程序代码:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void swap(int* a,int* b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
int main()
{
srand((unsigned)time(NULL));
int poker[52];
int i;
int rnd;
for(i=0;i<52;i++) poker[i]=i+1;
for(i=1;i<52;i++)
{
rnd = rand() % i;
swap(&poker[i],&poker[rnd]);
}
for(i=0;i<52;i++)
{
if(i%6==0 && i>0) printf("\n\n");
printf("%6d",poker[i]);
}
printf("\n");
return 0;
}

2014-12-24 14:47

2014-12-24 15:00
2014-12-24 15:01


2014-12-24 15:49
程序代码:for (i = 52 - 1;i > 0;i--)
{
tmp = rand() % (i + 1);
swap(i, tmp);
}
2014-12-24 16:44
2014-12-24 17:02