【项目1:数组操作】定义一个不重复的有初值的10个元素的整数数组a,利用冒泡法对数组a排序后完成以下操作(写在一个程序中)
1。从键盘中输入一个数x,删除a数组中值为x的数组元素;
2。从键盘中输入一个数x,将x插入到a数组后数组a依然有序;
<pre name="code" class="cpp">/*文件名称:cy.cpp
*作 者:杨鑫
*完成日期:2016年5月19日
*版 本 号:v1.0
*对任务的求解方法及描述部分:
*输入描述:定义一个不重复的有初值的10个元素的整数数组a,利用冒泡法对数组a排序后从键盘中输入一个数x
*问题描述:1。从键盘中输入一个数x,删除a数组中值为x的数组元素;
2。从键盘中输入一个数x,将x插入到a数组后数组a依然有序;
*问题分析:
*算法设计:
*/
#include<iostream>
using namespace std;
int main()
{
const int N=10;
int a[N]={10,8,5,4,3,6,7,9,2,11};
int i,j,t;
for(i=0;i<=N-2;i++)
{
for(j=0;j<=N-2-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0;i<N;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请输入要删掉的数x和要插入的数y";
int x,k=0;
cin>>x;
for(i=0;i<N;i++)
{
if(a[i]==x)
k=i;
}
for(i=k;i<N-1;i++)
a[i]=a[i+1];
int y;
cin>>y;
a[9]=y;
for(i=9;i>0;i--)
{
if(a[i]<a[i-1])
{
k=a[i-1];
a[i-1]=a[i];
a[i]=k;
}
}
for(i=0;i<N;i++)
cout<<a[i]<<" ";
return 0;
}
【二】运行结果
<img src="https://img-blog.youkuaiyun.com/20160525173152269?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
【三】心得总结
冒泡法排序的基本思想:从数组的第一个数开始,相邻两数两两比较,把小数对调到前边,大数放在后面,如此进行一轮,就把最大的数互换到最后,再进行一轮,则会把第二大数排在倒数第二的位置,进行N-1次后,整个数列即可排好。