找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1035|回复: 2

求个C++程序

[复制链接]
发表于 2009-11-6 00:49:02 | 显示全部楼层 |阅读模式 IP:江苏扬州
1)问题描述
抽签是我们日常生活中经常遇到的一件事,并且其形式有很多种。这里介绍一种抽签游戏,如图3所示,最上面一排是游戏的参加者——称为抽签者,最下面一排是签号(奖品、公差等)。每个人依次顺着竖线往下走,当碰到横线时,即转横向前进,碰到竖线再往下,以此类推,则游戏结束后,抽签者会一一对应到最下面一排的签号。
2. 基本要求
(1) 设计存储结构存储抽签者、签号、游戏用横线、竖线等;
(2) 设计算法实现抽签;
(3) 存储游戏的最终结果。
3. 设计思想
分析上面的抽签游戏的示例,遇到一条横线,代表这两个竖线的数据就要交换顺序,例如,原来的顺序为{A0, A1, A2, A3, A4},经过第0层横线后,顺序为{A1, A0, A3, A2, A4},再经过第1层横线后,顺序为{A1,A3,A0,A2,A4},以此类推,最后顺序为{A4, A1, A0, A2, A3},对应到{p0, p1, p2, p3, p4}。在该游戏中,需解决以下问题:
(1) 抽签游戏可以多人参与,只要加上竖线和横线即可。那么,如何表示这些参与者呢?
解决:假设有n个人参加,可以用一个一维数组A[n]来记录n个抽签者。
(2) 签号如何存储?
解决:签号的存储也可设计成一个一维数组p[n]来记录n个签号。
(3) 如何存储游戏的最终结果?
解决:设计一维数组B[n]存储最终的对应结果,同时在执行过程中记载中间结果。
(4) 当碰到某一横线跨在第i条和第i+1条竖线上时,如何交换数据?
解决:用一维数组B[n]来存放游戏过程中的中间结果和最终结果,通过交换B[i]和B[i+1]的值解决交换数据问题。
(5) 如何表示抽签游戏的竖线和横线布局?
解决:设计一个二维数组M[m][n],M[i][j]表示第i层上第j条和第j+1条竖线之间是否有横线,其值为0或1,1代表有横线,0代表没有横线。图3所述示例对应的数组M如图4所示。
算法设计要点如下:
(1) 按从上到下、由左到右的方式遍历数组M,若某元素值为1,则进行数据交换。
(2) 在数据交换的过程中,用一维数组B来存放游戏过程中的顺序和最终的顺序,即:
   如果M[i][j]=1,则B[j]←→B[j+1];
发表于 2009-11-6 00:49:03 | 显示全部楼层 IP:江苏扬州
难道又是作业啊,还是找高手来吧
回复

使用道具 举报

发表于 2009-11-6 00:49:04 | 显示全部楼层 IP:江苏扬州
作业无视
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 15:16 , Processed in 0.381219 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表