一,问题及代码
/*
02.* 文件名称:001.cpp
03.* 作 者:朱婵媛
04.* 完成日期:2016 年 5 月 22 日
05.* 版 本 号:v1.0
06.* 对任务及求解方法的描述部分:
07.* 输入描述:无
08.* 问题描述:我的第六个C++程序,熟悉程序的编辑、运行过程
09.* 程序输出:利用冒泡法对a数组进行删除和插入数字操作并且保持有序。
10.* 问题分析:略
11.* 算法设计:略
12.*/
#include<iostream>
using namespace std;
int main()
{
const int N=10;
int a[N+1]={1,12,3,4,5,16,7,8,9,10},i,j,t,x,y,index=-1,k=-1;
for(i=0;i<9;i++)
for(j=0;j<=8-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
cout<<"请输入一个数";
cin>>x;
for(i=0;i<N;i++)
{
if(a[i]==x)
{
index=i;break;
}
}
if(index!=-1)
{
for(i=index;i<N-1;i++)
a[i]=a[i+1];
for(i=0;i<N-1;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请输入一个数";
cin>>y;
for(i=0;i<N;i++)
{
if(a[i]>y)
k=i;break;
}
if(k==-1)
k=N-1;
else
for(i=N-1;i>k;i--)
a[i]=a[i-1];
a[k]=y;
for(i=0;i<N;i++)
cout<<a[i]<<" ";
}
else
{
for(i=0;i<N;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请输入一个数";
cin>>y;
for(i=0;i<N;i++)
{
if(a[i]>y)
k=i;break;
}
if(k==-1)
k=N;
else
for(i=N;i>k;i--)
a[i]=a[i-1];
a[k]=y;
for(i=0;i<N+1;i++)
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
二,运行结果
三,心得体会
还是不能很熟练的操作。
四,知识点总结
要注意删除数字时该数字在数组中没有的情况,这时数组数据个数就有差别了,要分情况考虑,后面的插入一个数字也是一样,还要注意考虑到那个数字在数组中是最大的情况。