c语言约瑟夫序列顺序表实现,7A版顺序表实现约瑟夫环的问题-C语言

《7A版顺序表实现约瑟夫环的问题-C语言》由会员分享,可在线阅读,更多相关《7A版顺序表实现约瑟夫环的问题-C语言(8页珍藏版)》请在人人文库网上搜索。

1、7A 版优质实用文档 算法与数据结构试验报告 一 专业班级 10 级计算机工程 02 试验地点 计算机大楼计工教研室 学生学号 1005080222 指导教师 蔡琼 学生姓名 肖宇博 试验时间 20GG-2-29 试验项目 算法与数据结构 试验类别 基础性() 设计性() 综合性() 其它( ) 试 验 目 的 及 要 求 (1 )掌握用 VC+ 上机调试线性表的基本方法; (2)掌握顺序表的存储结构以及基本运算的实现。 成绩评定表 类别 评分标准 分值 得分 合计 上机表现 积极出勤、遵守纪律 主动完成设计任务 30 分 程序与报告 程序代码规范、功能正确 报告详实完整、体现收获 70 分 。

2、7A 版优质实用文档 7A 版优质实用文档 备注: 评阅教师: 日 期: 年 月 日 试验内容 一、实验目的和要求 1、实验目的: (1)掌握用 VC+ 上机调试线性表的基本方法; (2)掌握顺序表的存储结构以及基本运算的实现。 2、实验内容 约瑟夫环问题:设编号为 1,2, 3,n 的 n(n0) 个人按 顺时针方向围坐一圈, m 为任意一个正整数。从第一个人开始顺时 针方向自 1 起顺序报数,报到 m 时停止并且报 m 的人出列,再从 他的下一个人开始重新从 1 报数,报到 m 时停止并且报 m 的人出 列。如此下去,直到所有人全部出列为止。要求设计一个程序模拟 此过程,对任意给定的 m 。

3、和 n ,求出出列编号序列。 3、实验要求:用顺序表实现。 二、设计分析 根据实验要求,采用顺序表来完成本次实验。 实验中定义了两个顺序表, 一个用来存储 n 个人的序号, 另一个用来存储 n 个人的出队顺序及序号。 程序中充分考虑了如果出队的元素大于队列的元素个数时应该有的情况, 7A 版优质实用文档 7A 版优质实用文档 如果出现这样的错误就提示!否则继续出队! 三、源程序代码 #include #include #define MAGSIZE 10 / 宏替换最大值 typedef struct int dataMAGSIZE; int length; Sqlist; void Crea。

4、tList(Sqlist G for(int i=0;idatai=ai; L-length=n; void InitList(Sqlist G L-length=0; 7A 版优质实用文档 7A 版优质实用文档 / 释放顺序表空间 / 约瑟夫环的核心代码 void DestoryList(Sqlist G void josephus(Sqlist G int m=0; printf( 请输入数到几个人出来 ); printf(n); scanf(%d, if(mL-length) printf( 没有这么多人呀! (_); else printf( 出列顺序为: ); for(int q=L。

5、-length;q=1;q-) t=(t+m-1)%q; printf(n); printf(t%dt,L-datat); for(int j=t+1;jdataj-1=L-dataj; printf(n); void main() Sqlist Gs; InitList(s); int aMAGSIZE; int n=0; printf( 请键入要输入几个数 ); printf(n); scanf(%d, for(int i=0;in;i+) ai=i+1; CreatList(s,a,n); josephus(s); DestoryList(s); printf(n); 四、测试用例(尽量。

6、覆盖所有分支) 1.当输入 1,2 ,3,4 。n 的这些数字范围以内的话,可以得到正确的结 7A 版优质实用文档 7A 版优质实用文档 五、实验总结 先后学习了 C/C+, 对编程语言基本上有一些了解, 但在数据结构试验程序 设计过程中还是学到了很多。 经过两天的设计,在不断翻阅以前资料的情况下,有针对性的复习了 C/C+ 中指针、循环的相关理论知识和 vc6.0 的基础知识和应用技巧,最后比 较成功的完成了本次的设计。 本次设计是运用已学的线性表中顺序表的相关内容,由于以前的指针方面 知识没有学好,刚开始时有些措手不及,尤其是运用指针申请动态内存,遇到 了不小的麻烦,程序检查时没有错误,但。

7、运行不了,经过仔细的思考,终于发 现了问题所在,特别高兴。 7A 版优质实用文档 7A 版优质实用文档 程序运行后,开始考虑各种 BUG ,比如输入的数大于数组定义的最大值的 时候抑或是数组的数小于应该输入的最小值(比如 0 ),比如输入的要出列的元 素大于队列中已有的元素抑或是小于数组中应该出现的元素,比如一些错误输 入等等之内的 BUG 都考虑之后的问题。 然后思考与反思后,发现程序还是有美中不足的地方,算法的核心存在一 些不足,比如依次从后往前挪动一个元素的时候存在一些效率上的问题,当元 素较多时,效率不高!考虑到可以采用标记法,把出队元素标记为 0,以后的出 队的时候跳过 0 ,而不是进行挪动,这样程序的效率就大大提高了! 本次实验运用的是 C 语言,大一时就学过了,在今后的试验中应该多尝试 其他的语言来写程序,提高自己思维的兼容性很重要。 这次的设计让我学到了不少的东西,而且了解到编程在现今诸多行业中应 用的重要性以及今后的发展,可以说是受益匪浅,为今后开发相关系统奠定了 坚实的理论基础和总结了宝贵的开发经验。 7A 版优质实用文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值