- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
云南大学物理实验教学中心
实验报告
课程名称: 计算机软件技术根底
实验工程:线性链表的应用
学生姓名: 学号:
学院 系 级 专业
成绩
成绩
指导教师:
实验时间: 年 时分至时分
实验地点:
实验类型:教学〔演示□验证□综合█设计□〕 学生科研□课外开放□ 测试□ 其它□
一、实验目的:在实习四的根底上,用线性链表解决一个应用问题。
二、问题:约瑟夫问题〔Joseph〕的求解。
问题描述:n只猴子要选大王,选举方法是:所有猴子按1、2、3、……、n编号顺时针方向围坐一圈,从第1号开始按1、2、3、……、m报数,凡报到m号的退出圈外,如此循环报数,直到圈内剩下一只猴子时,这只猴子就是大王。试设计一个程序,输出猴子出列顺序。
根本要求:利用单循环链表存储结构模拟此过程,n和m值由键盘输入,按照出列的顺序打印各个猴子的编号。
三、程序的编写与调试
1、原程序:
#includestdio.h
#includemalloc.h
structNode
{intdata;
structNode*next;
};
intmain()
{structNode*head,*s,*q,*t;
intn,m,count=0,i;
printf(请输入猴子总数m:);
scanf(%d,m);
printf(请输入报数数n:);
scanf(%d;errorC2143:syntaxerror:missing)before;errorC2059:syntaxerror:)错误:虽然提示缺少括号,其实是符号错误,分号应该是逗号。
errorC2143:syntaxerror:missing)before;
errorC2059:syntaxerror:)
错误:虽然提示缺少括号,其实是符号错误,分号应该是逗号。
改正:把“;”改为“,”即可。
for(i=0;im;i++)
{
s=structNode*malloc(sizeofstructNode);errorC2059:syntaxerror:type错误:类型错误,缺少〔〕;改正:把“
errorC2059:syntaxerror:type
错误:类型错误,缺少〔〕;
改正:把“structNode”用括号括起来,作为一个整体。
s-data=i+1;
s-next=NULL;
if(i==0)
{
head=s;
q=head;
}
else
{
q-next=s;
q=q-next;
}
}
q-next=head;
printf(开始顺序:“errorC2001:newlineinconstantsyntaxerror:missing)beforeidentifierq错误原因:符号错误,““”为中文引号。改正:把中文引号改为英文引号即可。
errorC2001:newlineinconstant
syntaxerror:missing)beforeidentifierq
错误原因:符号错误,““”为中文引号。
改正:把中文引号改为英文引号即可。
q=head;
while(q-next!=head)
{
printf(%d,q-data);//开始时的顺序
q=q-next;
}
printf(%d,q-data);
q=head;
printf(\n);
printf(出列顺序:);
do{
count++;
if(count==n-1)
{
t=q-next;
q-next=t-next;
count=0;
printf(%d,t-data);//出列顺序
free(t);//释放空间
}
q=q-next;
}
while(q-next!=q);
printf(\n)
文档评论(0)