数据结构课程设计(C语言)

gdblessy 2019-06-16 06:57:05
构建彩票优选号码集
...全文
209 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
/雨后晴空/ 2021-01-06
  • 打赏
  • 举报
回复
有代码吗
gdblessy 2019-06-16
  • 打赏
  • 举报
回复
彩票优选号码问题:目前彩票市场中,比较多的是一类“乐透型”彩票,例如37选9,31选7以及21选5等等。以“21选5”这种类型的彩票为例,在购买彩票时候,从0~21中选择5个数字,5个数字的排列构成一组号码,成为“一注彩票”。在你选择好这样5个数构成的排列后,彩票售卖机,会打印出你选择的一注彩票,她会将个位数字前面补零,是的5个数字都是两个数字构成,例如,如果你选取了{2,5,8,16,21}这个5个数字,并且将它们一次排放在由左往右的第1位至第5位,那么彩票售卖机将打印选择一个10个的数字序列,如下:
02 05 08 16 21
需要注意的是,05 02 08 21 16同上面的数字序列,不是同一注彩票;并且在选择5个数字的时候,这个5个数字不能相同。
现在有些职业彩民,将购买彩票作为每日的一部分,有些职业彩民,长期购买彩票,搜集了彩票开卖以来的每期中将号码,在这些中将号码中,他们发现很少有两期中将号码一样的情况。在选号码的过程中,他们还会借助于一些软件,对自己钟爱的数字产生一些排列,考虑到以前已经中过奖的号码,他们会把这些筛选掉。请你提出解决方法,帮他们快速的从自己钟爱的数字产生的排列集合中找出已经中过奖的号码。为了方便起见,假定自己钟爱的数字产生的排列集合A以及前期中将号码的集合B里面的每一注号码,都由可以一个10个长度的数字字符串表示,两个集合里面的号码都由随即产生,号码注数都不少于5000个。
【基本要求】
(1)输入数据包括:自己钟爱的数字产生的排列集合A,以及前期中将号码的集合B,都存储在输入文件input.txt中;输出集合A和集合B中相同的号码字符串,存放在output.txt。
(2)集合A和B中的数据,号码字符串采用伪随机数的方式产生,每注中的5个数据不能重复。
(3)采用多种比较算法来实现相同号码字符串的查找,至少使用选择排序(或冒泡排序),快速排序(或者合并排序),堆排序(或者希尔排序)并且统计比较次数。
(4)在号码字符串的比较过程中,不能采用strcmp( )函数或者string类对象的方式比较,调用函数进行比较效率会比较低,建议将字符串转换成基本数据类型,例如int或者long类型进行比较。
(5)要提示菜单的方式,显示使用了多种排序算法来进行两个集合元素的比较。
gdblessy 2019-06-16
  • 打赏
  • 举报
回复
qq1163418353

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧