上海电力学院
实验报告
课程名称 高级程序设计C++(1) 实验项目 实验七 数组1
姓名 学号 班级 专业
同组人姓名 无 指导教师姓名 实验日期
一、实验目的
1、掌握一维数组的定义、赋值和输入输出的方法;
2、掌握与数组有关的算法(特别是排序算法)。
二、实验内容和步骤
编程序并上机调试运行。
1、 按如下要求编程: 在第一个循环中给a数组的前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。
程序源代码(注意添加注释)
1
注:实验报告内容包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。
#include using namespace std; int main() { int a[10],i; for(i=0;i<10;i++) a[i]=i+1; for(i=5;i<10;i++) a[i]=a[9-i]; for(i=0;i<10;i++) cout<return 0; } 运行结果(直接截取结果图) 2、已知长度为10的数组a及其各个元素的值,对其按从大到小进行排序. 程序源代码(注意添加注释) //这里给出了另外一种排序算法.(采用课堂上讲的冒泡排序也可以实现,参见ppt) 2 注:实验报告内容包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。 #include using namespace std; int main() { int i,j,a[10]={3,32,6,2,67,9,21,45,23,8}; for(i=0;i<10;i++) { int p; p=i; for(j=i;j<10;j++)//该for循环找剩下j个元素里最大的那个元素的下标 if(a[p]p=j; if(p!=i) { //把目前的最大值a[p]放到前面来(和a[i]交换) 3 注:实验报告内容包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。 int t; t=a[p]; a[p]=a[i]; a[i]=t; } } for(i=0;i<10;i++) cout<return 0; } 运行结果(直接截取结果图) 3、有一个已经从小到大排好序的整数数组:a[30]={6,9,12,15,19,23,45,67,89,98},现输入一个整数 x ,要求按原来的升序规律将它插入到数组中。 程序源代码(注意添加注释) 4 注:实验报告内容包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。 #include using namespace std; int main() { int i,ps,n,a[30]={6,9,12,15,19,23,45,67,89,98}; cout<<\"请输入一个整数:\"; cin>>n; ps=10; for(i=0;i<10;i++) //该循环找应插入的位置 { if(n{ ps=i; break; 5 注:实验报告内容包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。 } } for(i=10;i>=ps;i--)//把插入位置之后(包括该位置)的元素依次往后挪一位 a[i+1]=a[i]; a[ps]=n; //插入输入的元素 for(i=0;i<11;i++) cout<return 0; } 运行结果(直接截取结果图) 4.请用户输入n个数(n的值不超过20,并由用户输入),每输入一个数据之后,按照由小到大顺序将其存入,然后显示当前已存储的数据的情况,直到最后一个数据。 程序源代码(注意添加注释) #include 6 注:实验报告内容包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。 using namespace std; int main() { int a[20],n,i,m,tmp,position; //输入在-20之间的数据个数 cout<<\"请输入数据的个数(最多不超过个):\"; cin>>n; while(n>20||n<1) { cout<<\"输入错误,请重新输入:\"; cin>>n; } //依次输入每个数据,并进行处理 for(i=0;i<=n-1;i++) 7 注:实验报告内容包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。 { //输入第i+1个数据 cout<<\"请输入第\"<cin>>tmp; position=i;//初始化插入的位置为i //查找该插入的位置 for(m=i-1;m>=0;m--) { if(a[m]>tmp) { a[m+1]=a[m]; position--; } else 8 注:实验报告内容包括:实验目的与要求、实验原理与内容、实验步骤与记录、实验分析与结论等。 break; } //将该数据插入到已排好序的数列中 a[position]=tmp; //以下输出当前数列 cout<<\"目前的数据序列为:\"; for(m=0;m<=i;m++)