C++实验六—项目1:数组操作

来源:互联网 发布:华为手机删除数据 编辑:程序博客网 时间:2024/05/29 18:28

一、问题及代码

/*    * 文件名称:  shchu.cpp  * 作    者:  习佳星   * 完成日期: 2017年5月5日   * 版 本 号:  v1.0    * 对任务及求解方法的描述部分: 利用数组定义一个不重复的有初值的10个元素的整数数组a,利用冒泡法对数组a排序后完成删除和插入操作* 输入描述:  略    * 问题描述:  较复杂,需要熟悉掌握数组的运用和细节处理 * 程序输出:  “ 1 2 3 4 5 8 9 14 16 76  输入要删除的数x1:3   删除x1后的有序数组为:1 2 4 5 8 9 14 16 76  输入要插入的数x2:15  删除操作后插入x2后的有序数组为:1 2 4 5 8 9 14 15 16 76” * 问题分析:  略  * 算法设计:  略  */    #include <iostream>  using namespace std;  int main()  {      int a[10]={2,3,1,5,76,9,16,8,14,4},i,j,t;      int x1,x2,k,m;  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;  cout<<"输入要删除的数x1:";cin>>x1;  for(i=0;i<10;i++)  {if(a[i]==x1)  k=i;}  for(i=k;i<9;i++)              a[i]=a[i+1];  cout<<"删除x1后的有序数组为:";   for(i=0;i<9;i++)              cout<<a[i]<<" ";cout<<endl;  cout<<"输入要插入的数x2:";cin>>x2;  for(i=0;i<9;i++)            {                if(a[i]>=x2)                {                    m=i;                    break;                }            }            for(i=9;i>m;i--)                a[i]=a[i-1];            a[i]=x2;            cout<<"删除操作后插入x2后的有序数组为:";            for(i=0;i<10;i++)                cout<<a[i]<<" ";            cout<<endl;           return 0;  }  


二、运行结果


三、心得体会:

         数组的排序,删除,插入是学习数组的基本操作,因此,掌握了这三个操作对于数组的学习就可以说是一大进步,值得高兴。

         在操作过程遇到了不少难题,花了大概一两小时,这说起来可能比较惭愧,但事实就是这样,很多都没有弄得很清楚,所以编译过程有点磕磕碰碰,在翻阅老师是上课讲的笔记后,仔细揣摩才完成了。其实很多操作老师都已经讲过了 ,只要上课认真听,做好相应的笔记,这些编译都不是什么大问题。

四、知识点总结:

        编译进行排序时用的是冒泡法,主要用了循环的嵌套以及一些逻辑思维,正确选择好循环的次数才不会错。排完序后就是删除操作,先要用If语句判断x1的位置在哪,然后进行删除操作,且不能乱序,这就是老师上课讲了的技巧,并且此时循环次数减1;接着是插入,插入同样的要判断x2的位置,这个步骤用到了break。

       在数组中break的使用很关键,便于编程,下一步就是老师将过了很多次的如何再插入一个数后不乱序,最后整个编译完成。总结一点就是熟悉循环,break,if语句等一些重点操作。

0 0
原创粉丝点击