- 1、本文档共18页,可阅读全部内容。
- 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语言的进一步学习,为我们日后学习单片机安打下了基础。在机电一体化日趋明显的当下,掌握一门计算机语言是多么的重要,这必将为我们机电学院学生日后的发展产生深远的影响。
由于课时和上机时间的仓促,所以我对很多内容还来不及消化,对上机演练十分陌生,还有一些知识遗忘,因而这次程序设计的实习实际上是对我的一次集中的强化练习。虽然其时间短,任务重,但我们的确达到了此次课程设计的目的。
本次实习得到樊**老师的指导和帮助,至此表示感谢 !
目 录
第一部分 题目要求 1
第二部分 程序设计思路 2
1. 需求分析 2
2. 程序总体设计 2
3. 程序详细设计 2
第三部分 程序代码 6
第四部分 设计数据和运行结果 10
4.1 运用举例的数据进行验证 10
4.2 自行设计数据进行验证 11
第五部分 所遇问题及解决方案 13
5.1 数字的输入问题 13
5.2 switch和break的用法 13
5.3数组排序问题 14
5.4 标记数组的使用 14
5.5 最后结果的输出 14
第六部分 总结与感受 15
第一部分 题目要求
数组游戏
【要求】
设有n个正整数(n≤20),将它们连成一排,组成一个最大的多位数。程序输入:n个正整数。程序输出:n个数连接成的多位数。
【提示】
以下是设计思路:
可以将问题这样变化一下:
比如输入的是123、2、33、1006、12这样几个数字。
先找出最大的数字的位数为4位,再将所有的数字变成4位数:
2000 3300 1006 1200
然后进行排序:
2000 1230 1200 1006
这样将后面加上的0去掉的序列不就是最大数字吗?于是最大数字就是:
332123121006。
第二部分 程序设计思路
需求分析
根据题目要求,输入若干个数字(中间用空格隔开),输入的数字个数不大于20。然后,让这些数随机连在一起,把组合中的最大数输出。
程序总体设计
输入一组数,输出所需要的数。
大致流程图:
程序详细设计
主函数
主要负责输入和输出一定的数据。
main( )
{
输入数字,
进行一定的处理,
输出数字,
}
流程图
排序函数(选择法)void sort(int x[],int n)
将数字按从大到小的顺序排列(如果两个数字相等,交换位置)
void sort(int x[],int n) /*用选择法将正整数按从大到小排列*/
{
int i,j,k,t;
for(i=0;in-1;i++)
{
k=i;
for(j=i+1;jn;j++)
if(x[j]=x[k])k=j;
if(k!=i)
{
t=x[i];
x[i]=x[k];
x[k]=t;
}
}
求位数函数int num(int y)
求每个数个的位数,以便补位。
int num(int y) /*求最大数字的位数*/
{
int i=0;
while(y)
{
y=y/10;
i++;
}
return i;
}
变位函数void modificate(int z[],int n);
把排序后的数字变成最高位数。
流程图:
3.5 还原函数void revert(int r[],int n);
把进行过补位的数字还原到原来的样子
void revert(int r[],int n) /*把变位后的数字还原成原数字*/
{
int j,h;
for(j=0;jn;j++)
{
h=b[j];
while(h)
{
r[j]=r[j]/10;
h--;
}
}
}
流程图:
第三部分 程序代码
#includestdio.h
static int b[20]; /*作为标记,记录数字的变位个数*/
main()
{
void sort(int x[],int n); /*用选择法将正整数按从大到小排
您可能关注的文档
- 2014年电大高级财务会计作业答案参考资料【最新】.docx
- 2014年行政伦理学期末复习综合练习题及答案小抄【精编完整版】.doc
- 2014年秋季电大计算机组成原理考试过必备小抄含答案.doc
- 2014最新电大《行政伦理》期末复习题库参考资料小抄【已排版】.doc
- 2014最新电大国际贸易原理期末考试小抄【打印版】.docx
- 2014河北省普通高等学校对口招生考试财经专业理论试卷答案.doc
- 2014电大《国际私法》期末考试复习题参考资料小抄 (10套国际私法试题附详细答案).doc
- 2014电大《文学英语赏析》期末考试小抄【精编已排版】-最新电大文学英语赏析期末复习资料小抄.doc
- 2014电大《经济学与生活》平时作业精心编辑答案小抄.doc
- 2014电大《组织行为学》网考综合练习+网考复习提纲+案例分析小抄(全).doc
文档评论(0)