




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构加里森的任务实验报告题目:加里森的任务需求分析程序所能实现的功能:功能有三(由功能键判定)。1)根据输入的(n,x,y),通过程序显示每轮派出去执行任务的战士的编号,直至只剩一人的情况,判断是否编号为1的加里森能否最终留下;2)根据输入的n值,找出从(n,1,1)到(n,n,n)满足条件的三元数对;3)退出程序。2,输入以及输出输入输出限制:n为大于等于2的正整数,x为大于等于1小于等于n的正整数,y为大于等于1的正整数(题干没有明确限制,默认小于等于n);输入输出形式:对于功能一,输入符合要求的n,x,y,输出每轮派出的战士编号,yes/no表示加里森能否最后留下;对于功能二,输入符合要求的n,输出从(n,1,1)到(n,n,n)满足条件的三元数对;对于功能三,输出“程序已停止”。3,正确的输入输出范例一:正确的输入输出范例二:正确的输入输出范例三:错误的输入输出范例一:错误的输入输出范例二:概要设计本程序主要实现了两个功能。功能一思路,先判断输入的n,x,y是否合理,如合理,则将编号1-n存入一个循环链表,头指针移到编号x时开始计数,指针向后移动y-1次,输出当前指针所存节点的编号,即为该轮被淘汰的战士编号,然后再把该节点删除,指针后移一位重新计数,重复上述操作,直至只留下一个节点为止。若最后一个节点编号为1,则加里森留下;否则未留下。功能二思路,先判断输入的n是否合理,如合理,则构建二重for循环(i,j,1<=i<=n,1<=j<=n)列举从(n,1,1)到(n,n,n)所有可能的nxy组合并进行判断,一旦符合则输出该组合。直至循环完毕。判断方法有两种,第一种类似功能一,第二种利用约瑟夫环公式法。数据结构类型的定义:typedefstructLink{intnum;structLink*next;}link;主程序流程:intmain(){ intchoice,t; intn,x,y; printf("功能选择:\n"); printf("1,自拟数据验证程序正确性(n,x,y已知,验证1号能否留下)\n"); printf("2,输出符合条件的(n,x,y)组合(n已知)\n"); printf("0,退出程序\n"); printf("请选择功能:"); scanf("%d",&choice); if(choice==1){ printf("请输入n,x,y:"); scanf("%d%d%d",&n,&x,&y); t=fanwei1(n,x,y); }if(choice==2){printf("请输入n:"); scanf("%d",&n); t=fanwei2(n); } if(choice==1&&t==1) judge(n,x,y); if(choice==2&&t==1) { inti,j; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(Cleanjudge(n,i,j)==1)//也可调用Rejudge printf("(%d,%d,%d)",n,i,j); } printf("\n"); } }//可调用函数judge,Cleanjudge,Rejudge if(choice==0) printf("程序已停止");}程序模块之间的调用关系:Main函数先调用fanwei1函数或fanwei2函数判断输入是否合法,功能一接着调用judge函数,功能二接着调用Cleanjudge函数或Rejudge函数。(judge函数和Cleanjudge函数中都调用了creatLinkList函数)详细设计1)//创建循环链表的函数voidcreatLinkList(link*p,intn){link*temp=p;link*head=p;//记录起点for(inti=1;i<=n;i++){link*a=(link*)malloc(sizeof(link));a->num=i;a->next=NULL;temp->next=a;temp=temp->next;if(i==n)a->next=head->next;//尾接头,使得循环}}2)voidjudge(intn,intx,inty)//这个是带输出淘汰过程的判断{//n:人数,x:起点,y:数字link*p=(link*)malloc(sizeof(link));creatLinkList(p,n);link*pre=p;p=p->next;//pre为p的上一位previouwhile(p->num!=x){pre=p;p=p->next;}//寻找起点intm=1;//当前数到的数,起点开始叫号,此时m为1while(n>1)//最后一位时必被淘汰,所以不用数{if(m==y){m=0;pre->next=p->next;//上一位跳过了p现所在的节点n--;//人数少一个cout<<p->num<<"->";//输出被淘汰的人}m++;pre=p;p=p->next;}cout<<p->num<<endl;//输出最后淘汰的人if(p->num==1)cout<<"Yes"<<endl;elsecout<<"No"<<endl;//输出最后结果}3)intCleanjudge(intn,intx,inty)//这是无输出的判断,返回1为是,0为否{link*p=(link*)malloc(sizeof(link));creatLinkList(p,n);link*pre=p;p=p->next;while(p->num!=x){pre=p;p=p->next;}intm=1;while(n>1)//最后一位时必被淘汰,所以不用数{if(m==y){m=0;pre->next=p->next;n--;}m++;pre=p;p=p->next;}if(p->num==1)return1;elsereturn0;}4)功能与cleanjudge相同,思路不同intRejudge(intn,intx,inty){//recursion递归的方式判断是否可以if(n==1)return1;//最后剩下一个必为1intk=y%n;x=(x-1+k)%n;//计算谁被淘汰if(x==1)return0;//如果是1被淘汰则返回零if(x==0)x=1;//如果是0被淘汰则即是n被淘汰,则此时下一个开始数的人是1//例如1245中,4被淘汰了,原本是第三个位置,淘汰后成了125,下个叫号的人是5,位置仍是第三,所以x不变returnRejudge(n-1,x,y);//人数减一,后边人的序号变化不影响1号的位置,此题只求1是否被淘汰}5)intfanwei1(intn,intx,inty)//选项1,判断n,x,y的范围{ if(n>=2) { if(x<=n&&x>=1) { if(y>=1) return1; else { printf("数据不正常,重新输入"); return0; } } else { printf("数据不正常,重新输入"); return0; } } else { printf("数据不正常,重新输入"); return0; }}6)intfanwei2(intn)//选项2,判断n的范围{ if(n>=2) return1; else { printf("数据不正常,重新输入"); return0; }}函数调用关系图MMainFanwei1/fanwei2Judge/CleanjudgecreatLinkList调试分析报告时空分析creatLinkList函数o(n)judge函数o(n)Cleanjudge函数o(n)Rejudge函数o(1)Mai
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育行业市场占有率表
- 美丽的心绪:初中语文作文教学与评价教案
- 外语课堂中的小组互动与合作学习效果研究
- 新能源领域发展动态表
- 小学生阅读理解能力的提升方法
- 各地区产业园区建设情况表格
- DB14-T 3387-2025 边鸡保种技术规程
- 家乡的变化发展议论文主题作文(8篇)
- 高空与低空交通融合对消费模式的创新
- 农业经济管理体系建设协议
- 隔爆设施安撤安全操作规程模版(2篇)
- 2025届高考语文一轮复习:小说阅读测试卷一(含解析)
- 急性肺栓塞急救与护理
- DB51-T 2987-2022 企业温室气体排放管理规范
- 2024年环保知识竞赛试题库及答案(完整版)
- 《数字信号处理原理与实现(第3版)》全套教学课件
- 广西河池市2023-2024学年高一下学期7月期末考试英语
- 中建“大商务”管理实施方案
- 电气识图全套试题及答案
- 安康杯安全知识竞赛考试题含答案
- 教科版五年级科学下册全册知识点
评论
0/150
提交评论