C++实验7及参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海电力学院

实验报告

课程名称高级程序设计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个元素。

●程序源代码(注意添加注释)

#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)

#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]交换)

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 ,要求按原

来的升序规律将它插入到数组中。

●程序源代码(注意添加注释)

#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;

}

}

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

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++)

{

//输入第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

break;

}

//将该数据插入到已排好序的数列中

a[position]=tmp;

//以下输出当前数列

cout<<"目前的数据序列为:";

for(m=0;m<=i;m++)

cout<

cout<

}

return 0;

}

//注:该题插入的实现和上一题插入的实现有些不同(但都可以实现同样目的),请自行比较。

相关文档
最新文档