/* 
    删除方法:
    如: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. #Tarjan,SPFA#洛谷 3627 [APIO2009] 抢掠计划

    题目 分析 首先重复走,钱只会计算一次,而且与路程长度无关,考虑有向图缩点,然后跑最长路,这里吧边权取反跑最短路,然后在酒吧结束也就是求\(-dis[col_x]\)的最大值,\(col_x\)也就是 ...

  2. Windows Terminal的资料

    Windows Terminal是微软Windows平台难得好用的工具. 由于工作内容的原因,需要打开多个CMD窗口.多个git bash窗口,并且在多个窗口间切换,因此命令行窗口支持多TAB的特性, ...

  3. java深入理解浅拷贝和深拷贝

    目录 简介 拷贝接口 使用clone导致的浅拷贝 使用clone的深拷贝 不要overridden clone 总结 简介 拷贝对象是java中经常会遇到的问题.java中存在两种类型,基础类型和引用 ...

  4. Java基础知识:面试官必问的问题

    数据类型 基本类型 byte/8 char/16 short/16 int/32 float/32 long/64 double/64 boolean/~ boolean 只有两个值:true.fal ...

  5. 超强阵容!HarmonyOS极客马拉松2023专家评审团来袭!

     数十位重量级专家现身决赛现场,为参赛者提供多角度专业点评.12支队伍,46位选手,齐聚东莞·松山湖,围绕HarmonyOS技术特性,共同挑战36小时极限编程,谁将问鼎决赛之巅,8.3日-5日,我们拭 ...

  6. Matplotlib Installing an official release from resources 源码安装Matplotlib官方版本

    Installation Installing an official release Matplotlib releases are available as wheel packages for ...

  7. css 你真的了解padding吗?

    前言 padding 简写属性在一个声明中设置所有内边距属性,实际上在使用过程中它对block元素和内联元素的处理是不一样的. 正文 对于block元素 如果宽度非auto那么容器会变大,如果容器宽度 ...

  8. 把 Maven 提交到项目?Maven Wrapper的使用与好处

    本文收录于 Github.com/niumoo/JavaNotes,Java 系列文档,数据结构与算法! 本文收录于网站:https://www.wdbyte.com/,我的公众号:程序猿阿朗 前言 ...

  9. (节流)js防止重复频繁点击或者点击过快方法

    1.方法一:用定时器定时,没跑完定时器,点击按钮无效 <script> var isClick = true; $("button").on("click&q ...

  10. EasyNLP发布融合语言学和事实知识的中文预训练模型CKBERT

    简介: 本⽂简要介绍CKBERT的技术解读,以及如何在EasyNLP框架.HuggingFace Models和阿里云机器学习平台PAI上使⽤CKBERT模型. 导读 预训练语言模型在NLP的各个应用 ...