第十五周项目三 洗牌
2016-06-05 14:04
148 查看
/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:舒文超 * 完成日期:2016年6月4日 * 版本号:vc++6.0 * 问题描述:在扑克牌游戏中,每次游戏开始都要求把54张牌 重新排列一下,称为洗牌。试编写程序将一副扑 克牌(用54个整数1~54表示)随机洗好后,顺序 输出54张牌的情况。 */ #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; void Sort(int a[], int n) { int num; int i; for(i=n-1;i>0;--i) { num=rand()%(i+1); if(num!=i) swap(a[num], a[i]); } } int main() { int a[54]; int i; for(i=0;i<54;++i) a[i]=i+1; cout<<"未洗牌前:"<<endl; for(i=0;i<54;++i) { if((i+1)%20==0) cout<<a[i]<<endl; else cout<<a[i]<<" "; } cout<<endl<<"洗牌之后:"<<endl; Sort(a, 54); for(i=0;i<54;++i) { if((i+1)%20==0) cout <<a[i] <<endl; else cout<<a[i]<<" "; } return 0; }思路: 刚拿到这个题的时候还不是特别懂的,看老师的后觉得有点太高逼格,自己有点做不到,于是自己便用了随机数来做(可以自己生成54以内的随机数,然后用循环,让第 “随机生成的那个数” 的位置的数与循环中的第i的位置上的数进行交换,虽然有可能在很多地方数字跟没洗牌时的一样,但总体来说也是已经洗牌了。)
相关文章推荐
- Zookeeper linux下集群部署
- 2016计蒜之道初赛第一场--B青云的机房组网方案(简单)【floyd】
- 你在发表理科学术文章过程中有哪些经验值得借鉴?
- 笔记本安装WindowsXP系统时蓝屏了怎么办
- 学习进度第十四周
- 学技术的思路理念
- 写给未来的自己
- 单链表的基本操作
- JQuery事件的绑定
- 内核构造skb数据包的实现
- Qt5.5
- 118. Pascal's Triangle [easy] (Python)
- 利用scipy.sparse.csr_matrix构建term-document矩阵
- ruby的安装
- 函数指针的正确理解 from C++ Primer Plus P242
- Mysql命令删除约束
- 彻底的清除 Office 以便重新安装
- Linux软件包管理
- 从查询出来的结果集获取Blob数据(以图片为例)
- 16.7 泛型类