一、问题及代码
/*
* 文件名称:数组操作.cpp
* 作 者: 朱霄
* 完成日期:2016年 5 月 23 日
* 版 本 号:Dev-C++5.11
* 对任务及求解方法的描述部分: 义一个不重复的有初值的10个元素的整数数组a,利用冒泡法对数组a排序后,完成删除元素,插入元素的操作
* 输入描述:要删去的数,和要插入的数
* 问题描述:数组处理
* 程序输出: 经处理后的数组
* 问题分析:熟练各类处理方法
* 算法设计:冒泡法
*/
#include<iostream>
using namespace std;
int main()
{
const int N=10;
int a[N]={0,1,4,3,2,5,6,7,8,9};
int i,j,t;
for(j=0;j<N-1;j++)
for(i=0;i<N-j-1;i++)
if(a[i+1]<a[i])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
int x,m;
cout<<"数组0,1,4,3,2,5,6,7,8,9 已按从小到大排列"<<endl<<"请输入要删去数x:";
cin>>x;
for(i=0;i<N;i++)
if(a[i]==x)
m=i;
for(i=m;i<N-1;i++)
a[i]=a[i+1];
cout<<"得到数组:";
for(i=0;i<N-1;i++)
cout<<a[i]<<" ";
cout<<endl;
int y,k;
cout<<"请输入要插入的数y:";
cin>>y;
for(i=0;i<N-1;i++)
if(a[i]>y) break;
for(k=N-1;k>i;k--)
a[k]=a[k-1];
a[i]=y;
cout<<"y插入数组后,数组重新从小到大排列,得到数组:";
for(i=0;i<N;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
二、运行结果
三、心得体会
1 对数组要有深刻理解,数组的空间是一开始给定的,但输出输的个数是可以靠输出时的循环次数来控制的。
四、知识点总结
1、for() cin>>a[i]
2、冒泡法是通过前后项的之间的比较,来达到排序的目的
3、数组中元素的删去,并不会减少空间,元素的插入要注意空间是否足够。