欢迎来到天天文库
浏览记录
ID:9381582
大小:137.50 KB
页数:18页
时间:2018-04-29
《c语言课程设计-数组游戏》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、前言计算机对社会发展所具有的广泛而深远的影响。人类文化的内涵是随着社会发展而进化的。在现代信息社会中,计算机已不仅仅是一种工具,而且是一种文化。信息技术对人类社会进行的全方位渗透,已经形成一种新的文化形态——信息时代的计算机文化。计算机知识成为当代知识分子结构中不可缺少的重要部分。设计是一门重要的计算机基础课程,通过学习,学生不仅要掌握高级程序设计语言的知识,更重要的是在实践中逐步掌握程序设计的思想和方法,培养问题求解和语言的应用能力。此次上机实习,不但要使同学们的程序设计能力上一台阶,同时要提高与程序设计和软件开发有关的各种综合能力。通过这次对C语言的进一步学习,为我们日后学习单片机
2、安打下了基础。在机电一体化日趋明显的当下,掌握一门计算机语言是多么的重要,这必将为我们机电学院学生日后的发展产生深远的影响。由于课时和上机时间的仓促,所以我对很多内容还来不及消化,对上机演练十分陌生,还有一些知识遗忘,因而这次程序设计的实习实际上是对我的一次集中的强化练习。虽然其时间短,任务重,但我们的确达到了此次课程设计的目的。本次实习得到樊**老师的指导和帮助,至此表示感谢!16目录第一部分题目要求1第二部分程序设计思路21.需求分析22.程序总体设计23.程序详细设计2第三部分程序代码6第四部分设计数据和运行结果104.1运用举例的数据进行验证104.2自行设计数据进行验证11第
3、五部分所遇问题及解决方案135.1数字的输入问题135.2switch和break的用法135.3数组排序问题145.4标记数组的使用145.5最后结果的输出14第六部分总结与感受1516第一部分题目要求数组游戏【要求】设有n个正整数(n≤20),将它们连成一排,组成一个最大的多位数。程序输入:n个正整数。程序输出:n个数连接成的多位数。【提示】以下是设计思路:可以将问题这样变化一下:比如输入的是123、2、33、1006、12这样几个数字。先找出最大的数字的位数为4位,再将所有的数字变成4位数:12302000330010061200然后进行排序:330020001230120010
4、06这样将后面加上的0去掉的序列不就是最大数字吗?于是最大数字就是:6。16第二部分程序设计思路1.需求分析根据题目要求,输入若干个数字(中间用空格隔开),输入的数字个数不大于20。然后,让这些数随机连在一起,把组合中的最大数输出。2.程序总体设计输入一组数,输出所需要的数。大致流程图:输入一组数字(个数不大于20)将输入的数进行连排在连排的数中选择出最大的数输出这个最大数3.程序详细设计3.1主函数主要负责输入和输出一定的数据。main(){输入数字,进行一定的处理,输出数字,}流程图16输入一组数字按字符串进行读取遇到空格‘’n=n+1n=0YN得到数组a[n]1.1排序函数(选择
5、法)voidsort(intx[],intn)将数字按从大到小的顺序排列(如果两个数字相等,交换位置)voidsort(intx[],intn)/*用选择法将正整数按从大到小排列*/{inti,j,k,t;for(i=0;i=x[k])k=j;if(k!=i){t=x[i];x[i]=x[k];x[k]=t;}16}1.1求位数函数intnum(inty)求每个数个的位数,以便补位。intnum(inty)/*求最大数字的位数*/{inti=0;while(y){y=y/10;i++;}returni;}1
6、.2变位函数voidmodificate(intz[],intn);把排序后的数字变成最高位数。流程图:数组a[i]计算需要补的位数y新数组a[i]=a[i]×10y将新数组a[n]排序用标记数组b[n]记录每个数字的变为数3.5还原函数voidrevert(intr[],intn);把进行过补位的数字还原到原来的样子voidrevert(intr[],intn)/*把变位后的数字还原成原数字*/{intj,h;for(j=0;j7、原后的数组a[n]使用标记数组b[n]记录的每个数字的变为数h16第三部分程序代码#includestaticintb[20];/*作为标记,记录数字的变位个数*/main(){voidsort(intx[],intn);/*用选择法将正整数按从大到小排列*/intnum(inty);/*求数字的位数*/voidmodificate(intz[],intn);/*变位函数,在数字后面加“0”*/voidsorts(intx[]
7、原后的数组a[n]使用标记数组b[n]记录的每个数字的变为数h16第三部分程序代码#includestaticintb[20];/*作为标记,记录数字的变位个数*/main(){voidsort(intx[],intn);/*用选择法将正整数按从大到小排列*/intnum(inty);/*求数字的位数*/voidmodificate(intz[],intn);/*变位函数,在数字后面加“0”*/voidsorts(intx[]
此文档下载收益归作者所有