第15周项目2:洗牌

来源:互联网 发布:南京数据恢复中心 编辑:程序博客网 时间:2024/06/02 07:28
/* * Copyright(c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:第15周项目2:洗牌 * 作者:于子娴 * 完成日期:2016.6.8 * 版本号:v1.0 * * 问题描述:在扑克牌游戏中,每次游戏开始都要求把54张牌重新排列一下,称为洗牌。试编写程序将一副扑克牌(用54个整数1~54表示)随机洗好后,顺序输出54张牌的情况。 * 输入描述: * 程序输出: */#include <ctime>#include <vector>#include <list>#include <iostream>#include <iterator>#include <cstdlib>using namespace std;using namespace std;typedef vector<int> IntVector;typedef unsigned int VIndex;void vectorShuffle(IntVector &unshuffled,IntVector &shuffled){    VIndex p,size=unshuffled.size();    while(size)    {        p=rand()%size--;        shuffled.push_back(unshuffled[p]);        unshuffled.erase(unshuffled.begin()+p);    }}int main(){    ostream_iterator<int> os(cout," ");    srand(time(NULL));    IntVector c,sc;    for(VIndex i=1; i<=54; i++)    {        c.push_back(i);    }    cout<<"洗牌前:"<<endl;    copy(c.begin(),c.end(),os);    cout<<endl;    vectorShuffle(c,sc);    cout<<endl;    cout<<"洗牌后:"<<endl;    copy(sc.begin(),sc.end(),os);    cout<<endl<<endl;    return 0;}


运行结果:


0 0
原创粉丝点击