首页 > 代码库 > 洗牌算法
洗牌算法
#include<stdio.h>#include<time.h>#include<stdlib.h>char buf[] = {‘A‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘,‘0‘,‘J‘,‘Q‘,‘K‘};//由于10不是一个字符,因此用0代替int main(){ char result[13]; srand((unsigned int)time(NULL)); for(int i=0;i<13;i++) { int index = rand()%(13-i); //每次从buf剩余的牌中随机抽取一张牌 result[i] = buf[index]; //放到洗后的牌组中 if(index != 13-i-1) //如果抽的不是剩下的牌中的最后一张 { buf[index] = buf[13-i-1]; //buf中的空位由最后一位没有被抽走的牌补上 } } for(int i=0;i<13;i++) { printf("%c ",result[i]); } printf("\n"); return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。