实验五 数组程序设计.pdf
学生实验报告
实验课名称:C++语言程序设计
实验项目名称:数组程序设计
专业名称:
班级:
学号:
学生姓名:
教师姓名:
年月日
一.实验名称
数组程序设计
二.实验目的与要求
1、掌握数组的定义和声明方法;
2、掌握数组元素访问及下标的使用;
3、理解数组元素的排序方法和优化。
三.实验设备与软件环境
VC++6.0
四.实验内容
1、编写算法,将数组元素中存放的数据逆序存放。
例如:数组中存放的数据:
1,2,3,4,5,6,7,8,9,10
经过逆序算法处理后,数组中存放的数据:
10,9,8,7,6,5,4,3,2,1
要求按顺序输出算法运行前后数组中的存放数据:
算法处理前:1,2,3,4,5,6,7,8,9,10
算法处理后:10,9,8,7,6,5,4,3,2,1
2、有一组数据{77,65.76,32,75,82,67,95,85,56,78}存储在数组中,编写程序求
出这组数据的平均值,并且求出所有高于平均值的数及其在数组中的下标值。
例如:95是高于平均值的数,应该输出为:
下标:7值:95
3、冒泡法排序算法的改进。
冒泡法排序在每一趟排序过程中,将数据按照存储位置的顺序进行逐一扫
描,遇到存放顺序不对的两个相邻数字,则交换它们的存储位置。这样的操作可
以达到一趟扫描至少排好一个数的作用,所以冒泡法排序最多需要N-1趟排序。
在设计算法时可以这样考虑,如果在某一趟扫描中所有的数据都不需要交换
数据,说明数组中的数就已经有序的了,可以提前结束排序工作,不需要进行下
一趟排序了,这也算是对冒泡排序算法的一个小小的改进。
按照这样的思路,我们可以在程序中设置一个变量,让它扮演记录一趟排序
过程中是否有数据的交换(有数据交换其值为1,没有数据交换数值为0)。如
果没有数据交换,就可以提前结束排序过程。
按照上面的算法提示完成冒泡法排序算法及其改进。
五、实验过程与结果
1、数组逆序存储
(1)任务分析
(2)算法设计
(3)程序流程图
(4)C++程序代码
(5)程序执行结果
2、数组平均值与下标
(1)任务分析
(2)算法设计
(3)程序流程图
(4)C++程序代码
(5)程序执行结果
3、冒泡排序法
(1)任务分析
(2)算法设计
(3)程序流程图
(4)C++程序代码
(5)程序执行结果
六、程序设计中遇到的问题、经验和体会