




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计基础(C语言)课程设计学 院: 班 级: 学 号: 姓 名: 日 期:2012年7月课程设计要求:1.本课程设计作为程序设计基础(C语言)的期末考查,占学期总成绩的70%。2.本课程设计的题目由学生自选。3.知识点要求包括:(1)文件常用操作(打开,读/写数据,关闭等);(2)选择结构;(3)循环结构;(4)自定义函数;(5)数组的使用;(6)指针的定义与引用;(7)在相应的代码处注释出以上知识点;4.课程设计的主体包括题目名称,算法分析,流程设计,代码设计及运行结果。C语言程序设计题目名称: 约瑟夫环问题 算法分析:需求分析1问题描述任务:编号是1,2,,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。2.功能要求:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。3.测试数据m的初值设为20,n=7;对应密码依次是:3, 2, 6, 4, 5, 9, 8;正确的出列顺序为6 2 4 3 1 5 7概要设计 首先,设计实现约瑟夫环问题的存储结构。由于约瑟夫环问题本身具有循环性质,考虑采用循环链表。将循环链表的结点定义为如下结构类型: struct node /定义一个结构体(结点),其中包含一个数据域和一个指针域 int num; int pw; struct node *next; ; 流程设计:核心思想:构造一个空链表,成功则初始化个人信息。为每个人编号。每个人的密码。任选一个数M,约瑟夫环开始。M出列,释放节点。M的密码作为新密码继续约瑟夫环。知道所有人出列,结束。释放节点。代码设计:#include #include struct node /定义一个结构体(结点),其中包含一个数据域和一个指针域 int num; int pw; struct node *next; ; struct node *head;void main()/ 进入主函数 Haha();/调用无用的外部函数,作业要求汗!system(color 1e);printf(n信息与电气工程学院 郝立勇nnn);printf(*系统说明:编号是1,2,,n的n个人按照顺时针n);printf(*方向围坐一圈,每个人只有一个密码(正整数)。);printf(一开始任选一个n*正整数作为报数上限值m,从第一个仍开始顺时针方向自1开n*始顺序报数,);printf(报到m时停止报数。报m的人出列,将他的密码作为新的n*m值,从他在顺时针方向的下);printf(一个人开始重新从1报数,如此下去,n*直到所有人全部出列为止。);printf(此程序用来求出出列顺序。n); int n,i,b,m,j; head=(struct node *)malloc(sizeof(struct node); /申请一个空间(头结点 head) struct node *p,*q; /定义两个可以指向结点的指针 printf(n 请输入总人数:); scanf(%d,&n); q=head; for(j=1;jnext=(struct node *)malloc(sizeof(struct node); q=q-next; q-pw=b; q-num=j; q-next=head-next; printf(n请任意输入一个正整数m:); loop:scanf(%d,&m); if(mnext!=q) for(i=1;inext; p=q-next; q-next=p-next; printf(%d%dnn,p-num,p-pw); m=p-pw; free(p); printf(%d%dnn,q-num,q-pw); /输出最后一个结点 free(q); /释放最后一个结点 free(head); /释放头结点 printf( *约瑟夫环结束,欢迎下次光临*n); Void haha()/定义一个无用的外部函数Int a1;A1=1;运行结果:输入输出:输出:请输入总人数: 输入:7输出:请输入第1号同学的密码: 输入:3输出:请输入第2号同学的密码: 输入:2输出:请输入第3号同学的密码: 输入:6输出:请输入第4号同学的密码: 输入:4输出:请输入第5号同学的密码: 输入:5输出:请输入第6号同学的密码: 输入:9输出:请输入第7号同学的密码: 输入:8输出:请任意输入一个正整数m:输入:20输出:关于对文件的操作,另起一行:#include #define N 200 int cnt1, cnt2, xxN; float pj; void writeDat();void jsValue()int i,cnt=0;for(i=0;iN;i+)if(xxi%2)cnt1+;else cnt2+;if(i%2=0)cnt+;pj+=xxi; pj/=100.0;/(float)cnt;void read_dat(int xxN) int i,j; FILE *fp; fp = fopen(in.dat,r); for(i = 0; i 20; i+) for(j = 0; j 10; j+) fscanf(fp, %d, &xxi*10+j); printf(%d , xxi*10+j); printf(n); fclose(fp); void main() read_dat(xx); jsValue(); printf(nncnt1=%d,cnt2=%d, pj=%6.2fn, cnt1, cnt2, pj); writeDat(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北中考数学真题及答案
- 2025年辅助功能检测系统项目建议书
- 建设工程方案审批规定(3篇)
- 教师招聘之《幼儿教师招聘》考前冲刺测试卷附参考答案详解【突破训练】
- 教师招聘之《幼儿教师招聘》每日一练及参考答案详解1套
- 智能玩具车远程操控创新创业项目商业计划书
- 移动电商解决方案创新创业项目商业计划书
- 乡村生态停车场创新创业项目商业计划书
- 科研数据共享与文献关联服务平台创新创业项目商业计划书
- 智能共享单车管理创新创业项目商业计划书
- 2025年食品加工行业智能化升级与智能烘焙设备市场前景研究报告
- 2024年河北省大名县事业单位公开招聘村务工作者笔试题带答案
- 2025-2030中国吸波复合材料行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 道路工程施工团队职责分工
- 《人工智能:AIGC基础与应用》高职全套教学课件
- 工程造价信息化管理中的问题与发展趋势
- 室性心动过速护理查房
- 2025届上海市(春秋考)高考英语考纲词汇对照表清单
- 教务处精细化常规管理
- 培训课件:医患沟通技巧
- 广东省四校2024-2025学年高三上学期期末联考英语试题(无答案)
评论
0/150
提交评论