/* 
    删除方法:
    如:12  32  56  84  95
    用覆盖的方法
    若删除第三个,则第四个要覆盖第三个,第五个要覆盖第四个
    覆盖完:12  32  84  95  95
    所以要实现删除,还要删除最后一个数字,即不打印,数组元素 - 1
     */

增加方法就简单,因为数组在定义的时候没有定义空间大小,所以可以随意增添。

#include <stdio.h>
#define N 5
int main()
{
//实现数组的删除
/*
删除方法:
如:12 32 56 84 95
用覆盖的方法
若删除第三个,则第四个要覆盖第三个,第五个要覆盖第四个
覆盖完:12 32 84 95 95
所以要实现删除,还要删除最后一个数字,即不打印,数组元素 - 1
*/
double powersNum[] = {2008, 3210, 4651, 8754, 3549}; int i;//循环变量
int j;//冒泡排序中的外循环变量
double delete_prwer;//要删除的数据
int delete_Index = -1;//寻找出来的数组的下标
int count = 5;//表示数组个数
int temp;//临时存储空间
double insertpower;//插入数据
// for(i = 0; i < 5; i++)
// printf("%.lf\t",powersNum[i]);
printf("请输入要删除的Power:");
scanf("%lf", &delete_prwer);
for(i = 0; i < count; i++)
{
if(delete_prwer == powersNum[i])
{
delete_Index = i;//记录找到的数据对应的下标
break;//找到元素后跳出循环,提高效率
}
}
printf("查找次数为:%d\n", i + 1);
if(-1 == delete_Index)
{
printf("很遗憾!没有找到相应的数据!\n");
}
else
{
for(i = delete_Index; i < count - 1 ; i++)
{
powersNum[i] = powersNum[i + 1];
}
count--;
}
printf("删除后的结果为:\n");
for(i = 0; i < count; i++)
{
printf("%.2lf\t", powersNum[i]);
}
printf("\n");
printf("请输入要插入的数据:\n");
scanf("%lf", &insertpower);
powersNum[count] = insertpower;
count++;
//printf("%.2lf\n", powersNum[count]);
printf("输入后的结果为:\n");
for(i = 0; i < count; i++)
{
printf("%.2lf\t", powersNum[i]);
} //冒泡排序 : 87, 5, 45, 23, 96
/*使上述数字由小到大排序
计算机运算过程:
第一轮: 轮数中比较的次数
87 45 23 96 5 4

87 45 96 23 5 3

87 96 45 23 5 2

96 87 45 23 5 1
*/
// i 为 0 为起始数值
//比较轮数 : count - 1
//每轮中比较的次数:count - j - 1
//外层循环控制轮数,内层控制比较次数 for(j = 0; j < count-1; j++)
{
for(i = 0; i < count - j-1; i++)
{
if( powersNum[i] > powersNum[i + 1])
{
temp = powersNum[i];
powersNum[i] = powersNum[i + 1];
powersNum[i + 1] = temp;
}
}
}
printf("\n");
printf("重新排序的结果为:\n"); for(i = 0; i < count; i++)
{
printf("%.2lf\t", powersNum[i]);
} return 0;
}

C语言:实现数组的删除和增加的更多相关文章

  1. 【算法】C语言实现数组的动态分配

    C语言实现数组的动态分配 作者:白宁超 2016年10月27日20:13:13 摘要:数据结构和算法对于编程的意义不言而喻,具有指导意义的.无论从事算法优化方向研究,还是大数据处理,亦或者网站开发AP ...

  2. JavaScript从数组中删除指定值元素的方法

    本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个 ...

  3. 线性表之顺序存储结构(C语言动态数组实现)

    线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链 ...

  4. iOS开发-OC语言 (四)数组

    知识点 1.NSArray 2.NSMutableArray 1.数组的基本用法: 2.数组的遍历 3.数组排序 ===========   NSArray  不可变数组  ============= ...

  5. 【C语言】数组知识点总结

    [C语言]数组知识点总结 标签: 数组 2018年04月12日 17:44:4481人阅读 评论(0) 收藏 举报  分类: C语言知识总结(4)  版权声明:本文为博主原创文章,未经博主允许不得转载 ...

  6. go语言学习-数组-切片-map

    数组 go语言中数组的特点: 数组的长度是固定的,并且长度也是数组类型的一部分 是值类型,在赋值或者作为参数传递时,会复制整个数组,而不是指针 定义数组的语法: var arr1 = [5]int{1 ...

  7. java数组遍历 删除remove

    package com.b; import java.util.ArrayList; //数组遍历删除,添加 public class Core2 { private String name; pri ...

  8. 图解微信小程序---实现行的删除和增加操作

    图解微信小程序之实现行的删除和增加操作 代码笔记部分 第一步:在项目的app.json中创建一个新的页面(页面名称英文,可自定义) 第二步:在创建的新页面中编写页面(注意bindtap属性值,因为是我 ...

  9. JavaScript中数组元素删除的七大方法汇总

    原文链接:https://blog.csdn.net/u010323023/article/details/52700770 在JavaScript中,除了Object之外,Array类型恐怕就是最常 ...

  10. C语言一维数组、二维数组、结构体的初始化

    C语言数组的初始化表示方法 一.C语言一维数组初始化: (1)在定义数组时对数组元素赋以初值.如: static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始 ...

随机推荐

  1. #倍增,floyd#CF147B Smile House

    题目 求一张有向图的最小正环(环上结点数最小) 分析 有环当且仅当 \(f[i][i]\) 为正数, 那么考虑跑 \(n\) 次 floyd 直接转移,时间复杂度为 \(O(n^4)\) 然而没必要这 ...

  2. WPF入门-导航页

    本文适合有winform或web前端基础,且有C#开发基础的同学学习. 本文介绍的开发模式属于MVVM,即Model-View-ViewModel .这种开发模式上手简单,开发迅速. wpf入门第一篇 ...

  3. 记录C++,base64解码写PDF文件遇到的坑

    不得不bb一下, 场景:用户传base64数据,我生成PDF文件保存到指定路径下 背景:在前人写好的工程上增加这个功能,工程中有base64的.h, .cpp 文件,我试了base64编码没有问题,所 ...

  4. BZOJ 4403序列统计

    假设存在一个满足条件的长度为i的不下降序列(显然是一定存在的)那么只需要从中选出i个数即可 (不必在意选出具体数的大小,可以把满足条件的序列写下来,选几个数感受一下). 但是$n \choose m ...

  5. 单机运行环境搭建之 --CentOS-6.4安装MySQL 5.6.10并修改MySQL的root用户密码

    单机运行环境搭建之 --CentOS-6.4安装MySQL 5.6.10并修改MySQL的root用户密码 Mysql 5.5以后使用了CMake进行安装,参考与以前的区别请参考: http://ww ...

  6. 力扣24(java&python)-两两交换链表中的节点(中等)

    题目: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点.你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换) 示例 1: 输入:head = [1,2,3,4] 输出:[ ...

  7. Kubernetes 稳定性保障手册 -- 可观测性专题

    简介: 伴随大家对稳定性重视程度的不断提升.社区可观测性项目的火热,可观测性成为了一个很热门的话题,站在不同的角度会产生不同的理解. 我们从软件开发的生命周期出发,尝试形成对可观测性的一个宏观理解,并 ...

  8. Spring Boot Serverless 实战系列“架构篇” 首发 | 光速入门函数计算

    ​简介:如何以 Serverless 的方式运行 Spring Boot 应用? ​ 作者 | 西流(阿里云函数计算专家) Spring Boot 是基于 Java Spring 框架的套件,它预装了 ...

  9. 一文搞懂物联网Modbus通讯协议

    简介: 一般来说,常见的物联网通讯协议众多,如蓝牙.Zigbee.WiFi.ModBus.PROFINET.EtherCAT.蜂窝等.而在众多的物联网通讯协议中,Modbus是当前非常流行的一种通讯协 ...

  10. Serverless 工程实践 | 细数 Serverless 的配套服务

    ​简介: 上文说到云计算的十余年发展让整个互联网行业发生了翻天覆地的变化,Serverless 作为云计算的产物,或者说是云计算在某个时代的表现,被很多人认为是真正意义上的云计算,关于"Se ...