您的位置:首页 > 编程语言 > C语言/C++

C++实验6-数组操作

2016-05-19 09:44 405 查看
一、问题及代码:

/*
* 文件名称: 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)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: