您的位置:首页 > 其它

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

2012-08-01 19:55 585 查看
给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里

一共是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]);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐