- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语c言课程设计航空售票系统--本科毕业设计论文
C语言程序设计课程设计
评语:
考勤(10) 纪律(10) 过程(40) 设计报告(30) 答辩(10) 总成绩(100)
专 业: 轨道交通信号与控制
班 级: 信号1402
姓 名: 牛志强
学 号: 201409217
指导教师: 张振海
兰州交通大学自动化与电气工程学院
2015 年 7 月 22 日
一、基础题
1、题目
有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号。
2、解题分析
利用结构体数组中加入指针构成循环链模拟进行报数,并加入标志,表示此人是否离开游戏。游戏开始,报数等于三的倍数的人离开,直到淘汰16个玩家为止,则剩余一人为胜利者,输出该游戏者的结构体数组位置即是此人原来的位置。
3、流程图
图1基础题流程图
源程序
#includestdio.h
struct Sign
{
int no_out; //出局标志
int nextp; //指针指向下一个元素,形成圈形链表
}sign[17];
main()
{
printf(有17个人围成一圈,从0号的人开始报数,凡报到3的倍数的人离开圈子,然后再数下去。直到最后只剩下一个人为止。问此人原来的位置是多少号。\n);
int i, j, k,l;
for (i = 0; i 17; i++) //循环链表赋初值
{
sign[i].no_out = 1;
sign[i].nextp = i + 1;
}
sign[16].nextp = 0;
printf(初始队列情况(Y代表存在,N代表出局):);
for (i = 0; i 17; i++)
printf(%c%c, sign[i].no_out ? Y : N,(i+1)%17!=0?\0:\n);
j = 16;
for (i = 0; i 16; i++) //淘汰16个人为止
{
for (k = 0;;)
{
if (k % 3 != 0 || k == 0)//不是3的倍数指向下一个
{
j = sign[j].nextp;
k += sign[j].no_out;
}
else //3的倍数出局,标志改为0
{
sign[j].no_out = 0;
break;
}
}
printf(第%d个人第%d号淘汰后:,i+1,j); //每淘汰一个人就输出,模拟真实的游戏过程
for (l= 0; l 17; l++)
printf(%c%c, sign[l].no_out ? Y : N,(l + 1) % 17 != 0 ? \0 : \n);
}
for (i = 0; i 17;i++)
if (sign[i].no_out)
printf(最后剩余一人原来号码为%d\n,i);
}
测试数据及运行结果
图2基础题运行图
二、改错题
1、题目
下列给定程序中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构。
程序如下:
#include stdio.h
#define N 20
void fun(int a[],int n)
{
int i,j,t,p;
for (j=0;jn-1;j++)
{
p=j
for (i=j;i,n;i++)
if (a[i]a[p]) p=j;
t=a[p];a[p]=a[j];a[j]=t;
}
}
main()
{
int a[N]={9,6,8,3,-1},i,m=5;
printf(排序前的数据:);
for (i=0;im;i++)
printf(%d,a[i]);
printf(\n);
fun(a,m);
printf(排序后的数据:);
for (i=0;im;i++)
printf(%d,a[i]);
printf(\n);
}
2、程序功能
把数组中的数按从小到大依次排序。
3、错误分析
(1)第8行:“p=j”改为“p=j;”构成语句。
(2)第9行:“i=j;”改为“i=j+1;”,使得小排序次数依
您可能关注的文档
- 有具刷卡支付功能的出租车计价器设计--本科毕业设计论文.doc
- 油炒场110kv输变电工程电缆沟-施工组织设计--本科毕业设计论文.doc
- 于关_在校大学生对支教问题认识_的教育研究报告--本科毕业设计论文.doc
- 于关c网cellplan及网络优化论文--本科毕业设计论文.doc
- 幼妇保健院水电暖工程施工方案--本科毕业设计论文.doc
- 于关对家乡民风民俗了解程度的调查报告--本科毕业设计论文.doc
- 于关提高注册会计师职业判断能力路径探析--本科毕业设计论文.doc
- 于关早餐的创业计划书--本科毕业设计论文.doc
- 于基51单片机的八路抢答器设计单片机原理课程设计--本科毕业设计论文.doc
- 于基android和php的网络在线借书app的设计与实现--本科毕业设计论文.doc
- 2025至2030年中国远程通讯座市场现状分析及前景预测报告.docx
- 2025年中国色浆灌装机行业市场调查、投资前景及策略咨询报告.docx
- 2025至2030年中国矿棉消声器市场现状分析及前景预测报告.docx
- 2025年上海电子信息职业技术学院招聘考试笔试试题(含答案).docx
- 2025至2030年中国数控自动马歇尔稳定度测定仪市场现状分析及前景预测报告.docx
- 2025年中国天线金属件行业市场调查、投资前景及策略咨询报告.docx
- 2025至2030年中国盐渍芋头市场现状分析及前景预测报告.docx
- 中考数学考点练习题21 解三角形(解析版).pdf
- 2025年中国汽车急救工具包行业市场调查、投资前景及策略咨询报告.docx
- 2025至2030年中国泡蒜子市场现状分析及前景预测报告.docx
文档评论(0)