C++上机实验6--数组分离

本文介绍了一个包含10个不重复整数的数组,通过冒泡排序实现数组的升序排列,并演示了如何从数组中删除特定数值以及如何插入新数值以保持数组有序。

/*
* 文件名称: qg4.cop
* 作    者:  李秋谷
* 完成日期:   2016   年    05月   21日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:定义一个不重复的有初值的10个元素的整数数组a,利用冒泡法对数组a排序后完成以下操作
1。从键盘中输入一个数x,删除a数组中值为x的数组元素;
2。从键盘中输入一个数x,将x插入到a数组后数组a依然有序(在第一题基础上完成);
* 问题描述:数组操作
* 程序输出:
* 问题分析: 略
* 算法设计:  略
#include<iostream.h>  
void main()
{
     int i,j,t,a[10]={2,56,24,17,6,9,13,71,27,31};
     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;
		}
	   }
	 }
    cout<<"排序后的数组为:";
    for(i=0;i<10;i++)
    cout<<a[i]<<" ";
        cout<<endl;
    int x,m=0;
    cout<<"删除数据:";
    cin>>x;
	  cout<<"删除后的新有序数组为:"; 
    for(i=0;i<10;i++) 
		if(a[i]!=x)
		{
			a[m]=a[i];
			m++;
		}
    for(m=0;m<9;m++)  
        cout<<a[m]<<" "; 
    cout<<endl;
    int y,n,k; 
    cout<<"插入数据:"; 
    cin>>y; 
	if(a[9]<y)	  
	{
		a[9]=y;
	}
	for(n=0;n<=9;n++)          
	{
		if(a[n]>y)              
		{                 
			for(k=9;k>=n;k--)                  
			{                      
				a[k+1]=a[k];                  
			}                    
			a[n]=y;                    
			break;              
		}          
	}      
    cout<<"插入后新的有序数组为:";
	for(n=0;n<10;n++)
        cout<<a[n]<<" ";  
    cout<<endl;
}

三: 心得体会:要理解题意,因为题目说的是第二小问要在第一题的基础上,而不是在原始排列数组a上

四:知识点总结:利用冒泡法,所以冒泡法的源程序一定要记住。删除和插入都是在此基础上完成的。

已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 QueueForMcu 基于单片机实现的队列功能模块,主要用于8位、16位、32位非运行RTOS的单片机应用,兼容大多单片机平台。 开源代码:https://.com/xiaoxinpro/QueueForMcu 一、特性 动态创建队列对象 动态设置队列据缓冲区 静态指定队列元素据长度 采用值传递的方式保存队列据 二、快速使用 三、配置说明 目前QueueForMcu只有一个静态配置项,具体如下: 在文件 中有一个宏定义 用于指定队列元素据长度,默认是 ,可以根据需要更改为其他据类型。 四、据结构 队列的据结构为 用于保存队列的状态,源码如下: 其中 为配置项中自定义的据类型。 五、创建队列 1、创建队列缓存 由于我们采用值传递的方式保存队列据,因此我们在创建队列前要手动创建一个队列缓存区,用于存放队列据。 以上代码即创建一个大小为 的队列缓存区。 2、创建队列结构 接下来使用 创建队列结构,用于保存队列的状态: 3、初始化队列 准备好队列缓存和队列结构后调用 函来创建队列,该函原型如下: 参说明: 参考代码: 六、压入队列 1、单据压入 将据压入队列尾部使用 函,该函原型如下: 参说明: 返回值说明: 该函会返回一个 枚举据类型,返回值会根据队列状态返回以下几个值: 参考代码: 2、多据压入 若需要将多个据(数组)压入队列可以使用 函,原理上循环调用 函来实现的,函原型如下: 参说明: 当数组长度大于队列剩余长度时,数组多余的据将被忽略。 返回值说明: 该函将返回实际被压入到队列中的据长度。 当队列中的剩余长度富余...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值