欢迎来到天天文库
浏览记录
ID:14307727
大小:132.00 KB
页数:11页
时间:2018-07-27
《第4章数组上机作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章构造数据类型第一部分数组通过本节实验作业应达目标1.学习并掌握一维数组与二维数组的定义、使用及初始化方法。2.熟练掌握字符数组和字符串的使用方法。3.掌握数组的一种排序算法。4.学会用数组保存多个相关的同类数据,并对这一组数据进行各类操作。本章必须上交作业第一部分数组作业要求:程序4_3.c、4_4_2.c、4_5.c、4_7.c、4_8.c上传至http://121.251.227.27:8080/c。源程序可以.cpp命名。实验一一维数组的定义和简单应用【实验目的】学会定义一维数组,掌握一维数组的遍历操作,掌握在一组数组中求最大值、最小值的方法。【实验
2、内容】从键盘读入5个成绩到一个数组中,求其中的最大值,最小值和平均成绩。在屏幕上显示输入成绩的提示信息,用键盘输入一个成绩,接着提示输入下一个,直到结束。以4_1.c命名本程序。程序运行界面【实验提示】求最大(小)值通常用“打擂台”的方法。首先设计两个变量,如max和min分别用来存放最大值和最小值,并将数组的首元素赋给这两个变量,这就是到目前为止的最大(小)值,然后利用循环依次比较其他的元素,总是将当前最大(小)值赋给max和min,直至比较到最后,max和min中的数据就是最大值和最小值。求平均值还要设置一个变量sum,用来累加各元素的值。实验二一维数组的排
3、序【实验目的】熟练掌握一维数组三种基本排序方法:选择法,冒泡法,比较法。【实验内容】从键盘上接收10个成绩,存放到一个一维数组score中,分别利用三种排序方法,将数组从小到大排序并在屏幕上显示排序结果。分别以4_2_1.c、4_2_2.c和4_2_3.c命名三个程序。【实验提示】所谓排序是指把一组杂乱无章的数据按照大小顺序排列。将被排序的n个数据存放在一个数组中,假如按升序排列。我们将数组定义为a[n],数据存放在a[0]到a[n-1]中。1.比较排序法将a[0]与a[1]比较,若a[1]4、较,同样小者交换到a[0],……如此比较下去至到a[0]与a[n-1]比较,小者放到a[0]中,第一轮比较n-1次,a[0]中的值就是n个数中最小者。然后a[1]再与a[2]比较,方法同上,小者交换到a[1],……第二轮比较n-2次,这样a[1]也就确定了,第三轮a[2]与其后面的数比较,……,共比较n-1轮以后,数组中各元素的值就按升序排列好。2.选择排序法选择排序法就是对比较法的改进。它的算法思想是:仍然是a[i]与其后的a[j]进行比较,但是当比较出a[j]小于a[i]时,先不急于交换(因为a[j]并不一定是这一轮中最小的,可能还有更小的),用一个变量p记5、下j的下标(即第几个数),继续比较下去,将最小数的下标j存放在p中,一轮比较完毕,a[p]便是最小的,这样只要a[i]与a[j]交换即可。一轮只交换一次,大大提高了程序的效率.其中,一维数组既是数据的存放位置,也是交换的场所,这样可以很好的利用数据的内存空间。3.冒泡排序法将要排序的数放在某一个数组中,如a[0]~a[n-1],然后比较数组相邻两元素的值,即a[0]与a[1]比较,假如按升序排列,且a[0]>a[1],则二者交换,否则不变,a[1]再与a[2]比较,前者大就交换,…,依次两两比较至到a[n-2]与a[n-1]比较,经过一轮以后,最大者“沉”到了最6、后,小数往上“冒”,所以得名“冒泡法”。第二轮比较数组的前n-1个,即a[0]~a[n-2]。重复此过程,直到所有的元素比较完毕。实验三一维数组元素的调换【实验目的】进一步加强对数组的应用。【实验内容】找出数组中的最小数和次小数,并把最小数和a[0]中的数对调、次小数和a[1]中的数对调,其余数据位置不变。例如,程序运行时若输入:24611397058,则输出:02611397458。以4_3.c命名本程序并上交,部分程序如下。#defineN10voidmain(){inta[N],i;for(i=0;i7、);…………/*编写程序,实现功能*/for(i=0;i8、据中查找到所查数据的位置
4、较,同样小者交换到a[0],……如此比较下去至到a[0]与a[n-1]比较,小者放到a[0]中,第一轮比较n-1次,a[0]中的值就是n个数中最小者。然后a[1]再与a[2]比较,方法同上,小者交换到a[1],……第二轮比较n-2次,这样a[1]也就确定了,第三轮a[2]与其后面的数比较,……,共比较n-1轮以后,数组中各元素的值就按升序排列好。2.选择排序法选择排序法就是对比较法的改进。它的算法思想是:仍然是a[i]与其后的a[j]进行比较,但是当比较出a[j]小于a[i]时,先不急于交换(因为a[j]并不一定是这一轮中最小的,可能还有更小的),用一个变量p记
5、下j的下标(即第几个数),继续比较下去,将最小数的下标j存放在p中,一轮比较完毕,a[p]便是最小的,这样只要a[i]与a[j]交换即可。一轮只交换一次,大大提高了程序的效率.其中,一维数组既是数据的存放位置,也是交换的场所,这样可以很好的利用数据的内存空间。3.冒泡排序法将要排序的数放在某一个数组中,如a[0]~a[n-1],然后比较数组相邻两元素的值,即a[0]与a[1]比较,假如按升序排列,且a[0]>a[1],则二者交换,否则不变,a[1]再与a[2]比较,前者大就交换,…,依次两两比较至到a[n-2]与a[n-1]比较,经过一轮以后,最大者“沉”到了最
6、后,小数往上“冒”,所以得名“冒泡法”。第二轮比较数组的前n-1个,即a[0]~a[n-2]。重复此过程,直到所有的元素比较完毕。实验三一维数组元素的调换【实验目的】进一步加强对数组的应用。【实验内容】找出数组中的最小数和次小数,并把最小数和a[0]中的数对调、次小数和a[1]中的数对调,其余数据位置不变。例如,程序运行时若输入:24611397058,则输出:02611397458。以4_3.c命名本程序并上交,部分程序如下。#defineN10voidmain(){inta[N],i;for(i=0;i7、);…………/*编写程序,实现功能*/for(i=0;i8、据中查找到所查数据的位置
7、);…………/*编写程序,实现功能*/for(i=0;i8、据中查找到所查数据的位置
8、据中查找到所查数据的位置
此文档下载收益归作者所有