首页 > 代码库 > 洗牌算法

洗牌算法

#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;}