C++实验6-数组操作
2016-05-19 09:44
405 查看
一、问题及代码:
二、运行结果:
三、心得体会:
和数组相关的问题还需要更多的练习来熟悉并掌握。
四、知识点总结:
1.从数组中删除一个数:先要找出要删除的数的位置i ,将数据向前移动(a[j]=a[j+1]),覆盖要删除的数。
2.已知一个已排序好的数组,插入一个数x该数组依然有序:先要从数组中找到第1个比x大的数的位置i,从最后开始移动数据(a[k]=a[k-1]),并在位置i插入数据(a[i]=x)。
/* * 文件名称: Ex6.cpp * 作 者:罗前 * 完成日期:2016 年 5月 19日 * 版 本 号:v6.0 * 对任务及求解方法的描述部分: * 输入描述: * 问题描述:从键盘中输入一个数x,删除a数组中值为x的数组元素; 从键盘中输入一个数x,将x插入到a数组后数组a依然有序。 * 程序输出: * 问题分析: * 算法设计: */ #include <iostream> using namespace std; int main() { int a[10]={18,2,9,6,12,4,8,30,10,15}; int i,j,t; for(i=0;i<9;i++) { for(j=0;j<9-i;j++) { if(a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(i=0;i<10;i++) cout<<a[i]<<" "; cout<<endl; int b[9],c[11],x,y,k=0,l; cout<<"请输入要删除的数:"; cin>>x; for(i=0;i<10;i++) if(a[i]!=x) b[k++]=a[i]; cout<<"删除后的新有序数组为:"; for(i=0;i<9;i++) cout<<b[i]<<" "; cout<<endl; cout<<"请输入要插入的数:"; cin>>y; for(i=0;i<10;i++) if(a[i]>y) break; for(l=10;l>i;l--) a[l]=a[l-1]; a[i]=y; cout<<"插入后新的有序数组为:"; for(i=0;i<11;i++) cout<<a[i]<<" "; cout<<endl; return 0; }
二、运行结果:
三、心得体会:
和数组相关的问题还需要更多的练习来熟悉并掌握。
四、知识点总结:
1.从数组中删除一个数:先要找出要删除的数的位置i ,将数据向前移动(a[j]=a[j+1]),覆盖要删除的数。
2.已知一个已排序好的数组,插入一个数x该数组依然有序:先要从数组中找到第1个比x大的数的位置i,从最后开始移动数据(a[k]=a[k-1]),并在位置i插入数据(a[i]=x)。