一。问题及代码
/*
* 文件名称:2.cpp
* 作 者:董璐
* 完成日期: 2016 年 5 月 23 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:用冒泡法先给数组排序,然后删除再加入一个数
* 输入描述:输出三个数组
* 问题描述:数组操作
* 程序输出:
* 问题分析:数组,循环结构
* 算法设计:
*/
#include<iostream>
using namespace std;
int main()
{const int n=10;
int a[]={2,4,6,5,8,9,10,1,3,7},i,m,k,x;
for(int j=0;j<n-1;j++)
for(i=0;i<n-j-1;i++)
{
if(a[i]>a[i+1])
{
m=a[i];
a[i]=a[i+1];
a[i+1]=m;
}
}
cout<<"有序数组为:";
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请删除一个数x:";
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];
cout<<"删除后的数组为:";
for(i=0;i<n-1;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"请插入一个数x:";
cin>>x;
for(i=0;i<n-1;i++)
if(a[i]>x) break;
for(m=9;m>i;m--)
a[m]=a[m-1];
a[i]=x;
cout<<"插入后的数组为:";
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
二。运行结果
三。心得体会
数组部分让我觉得有些难,花费好长时间加上请教同学才写出代码,中间出了很多错误。另外,课堂上单纯的知识点需要运用后才能掌握,我看书后在上机是遇到运用的难题,这些都需要我们付出努力来完成。
四,知识点总结
数组赋值时可以只给数组靠前部分的元素初始化。只能给元素逐个赋值,不能整体赋值,如果给元素赋值,在数组说明中,可以不给出数组元素个数。
利用冒泡法给数组中的数排序,冒n-1次。
当输入要删除的数和数组中的某个值相等时,后面的数都向前进一位,数组长度减小一个值。