一、问题与代码
/*
* 文件名称:c++实验6
* 作 者:刘寅
* 完成日期:2016年5月24日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分: 对数组进行排序,插入和删除数组元素
* 输入描述:输入任意的十个数
* 问题描述:我的第六个C++程序,熟悉数组的意义和运用
* 程序输出:排序、插入和删除数组中元素
* 问题分析:对数组排序,插入和删除元素不改变数组顺序
* 算法设计:略
*/
#include<iostream.h>
void main()
{
int a[10],i,j,k,h,temp,x,y;
cout<<"请任意输入不重复的十个数:";
for(i=0;i<10;i++)
cin>>a[i];
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];a[j]=a[j+1];a[j+1]=temp;
}
cout<<"排序后数组为:";
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请输入要删除的数x:";
cin>>x;
for(i=0;i<10;i++)
if(a[i]==x)
{
for(k=i;k<9;k++)
a[k]=a[k+1];
}
cout<<"删除数x后的数组为:";
for(i=0;i<9;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请输入要插入的数y:";
cin>>y;
if(a[0]>=y)
{
for(i=9;i>0;i--)
{ a[i]=a[i-1];}
a[0]=y;
}
else if(a[8]<=y) a[9]=y;
else
{
for(i=8;i>=0;i--)
{
if(a[i]<=y&&a[i+1]>y)
{
for(h=9;h>i+1;h--)
{
a[h]=a[h-1];
}
a[i+1]=y;
}
}
}
cout<<"插入数y后的数组为:";
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
}
二、运行结果
三、心得体会
这是我写过的最长的一个c++程序,用了很多时间,也不断的在实验和改进,不断的探索,现在终于完成了,虽然有些不完美,但是可以达到题目要求,所以只要不断的去尝试,一定会成功的,加油。
四、知识点总结
这是关于数组的综合运用,对数组进行排序,插入和删除元素,过程较为复杂,需要了解数组的存在形式,数组的各项意义,以及对数组的操作会出现怎样的结果等等,特别是数组的排序,需要知道冒泡法的趟数等等,,慢慢的体会数组一定可以很好的掌握的。