C语言:实现数组的删除和增加
/*
删除方法:
如: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语言:实现数组的删除和增加的更多相关文章
- 【算法】C语言实现数组的动态分配
C语言实现数组的动态分配 作者:白宁超 2016年10月27日20:13:13 摘要:数据结构和算法对于编程的意义不言而喻,具有指导意义的.无论从事算法优化方向研究,还是大数据处理,亦或者网站开发AP ...
- JavaScript从数组中删除指定值元素的方法
本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个 ...
- 线性表之顺序存储结构(C语言动态数组实现)
线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链 ...
- iOS开发-OC语言 (四)数组
知识点 1.NSArray 2.NSMutableArray 1.数组的基本用法: 2.数组的遍历 3.数组排序 =========== NSArray 不可变数组 ============= ...
- 【C语言】数组知识点总结
[C语言]数组知识点总结 标签: 数组 2018年04月12日 17:44:4481人阅读 评论(0) 收藏 举报 分类: C语言知识总结(4) 版权声明:本文为博主原创文章,未经博主允许不得转载 ...
- go语言学习-数组-切片-map
数组 go语言中数组的特点: 数组的长度是固定的,并且长度也是数组类型的一部分 是值类型,在赋值或者作为参数传递时,会复制整个数组,而不是指针 定义数组的语法: var arr1 = [5]int{1 ...
- java数组遍历 删除remove
package com.b; import java.util.ArrayList; //数组遍历删除,添加 public class Core2 { private String name; pri ...
- 图解微信小程序---实现行的删除和增加操作
图解微信小程序之实现行的删除和增加操作 代码笔记部分 第一步:在项目的app.json中创建一个新的页面(页面名称英文,可自定义) 第二步:在创建的新页面中编写页面(注意bindtap属性值,因为是我 ...
- JavaScript中数组元素删除的七大方法汇总
原文链接:https://blog.csdn.net/u010323023/article/details/52700770 在JavaScript中,除了Object之外,Array类型恐怕就是最常 ...
- C语言一维数组、二维数组、结构体的初始化
C语言数组的初始化表示方法 一.C语言一维数组初始化: (1)在定义数组时对数组元素赋以初值.如: static int a[10]={0,1,2,3,4,5,6,7,8,9}; 经过上面的定义和初始 ...
随机推荐
- #直径,线段树#51nod 1766 树上的最远点对
题目 多组询问,在 \([a,b]\) 和 \([c,d]\) 中分别选一个点 \(x,y\) ,使得 \(dis(x,y)\) 最大 分析 考虑直径的一个性质,两个点集两条直径的四个端点可能成为合并 ...
- #Kruskal,可撤销并查集#CF891C Envy
题目 给出一个 \(n\) 个点 \(m\) 条边的无向图,每条边有边权,共 \(Q\) 次询问, 每次给出 \(k_i\) 条边,问这些边能否同时在一棵最小生成树上. 分析 考虑最小生成树选择的边权 ...
- 探索“智”感生活,HMS Core线上Codelabs挑战赛第4期开始!
HMS Core线上Codelabs挑战赛第4期正式开始!我们向所有实践力超强.创新力满满的开发者发出邀请,用你的超级"码"力,解锁更多应用价值! 生活里,我们被手机"秒 ...
- HTML基础之input系列
<form action=""> <div> 用户名:<input type="text" name="user&quo ...
- 自己diy一个smi(可以监控gpu,cpu,memory)
diy-smi 1.0(DIY System management interface) 在我们训练自己深度学习模型时,我们想看GPU信息,也想看CPU和内存信息.我常用的是nvidia-smi和ht ...
- 这种精度高,消耗资源少的大模型稀疏训练方法被阿里云科学家找到了!已被收录到IJCAI
简介: 论文通过减少模型稀疏训练过程中需要更新的参数量,从而减少大模型稀疏训练的时间以及资源开销,是首个大模型参数高效的稀疏训练算法PST. 作者:李深.李与超 近日,阿里云机器学习PAI关于大模型稀 ...
- Flink 作为现代数据仓库的统一引擎:Hive 集成生产就绪!
在2020年,你的数据仓库和基础设施需要满足哪些需求? 我们总结了几下几点: 首先,当下的企业正快速转向更实时化的模式,这要求企业具备对线上流式数据进行低延迟处理的能力,以满足实时(real-time ...
- 配置审计(Config)变配报警设置
简介: 本文作者[紫极zj],本篇将主要介绍通过配置审计的自定义规则等服务,对负载均衡进行预警行为的相关介绍. 前言 配置审计(Config)将您分散在各地域的资源整合为全局资源列表,可便捷地搜索全局 ...
- 5分钟搞定Loki告警多渠道接入
简介: Loki是受Prometheus启发的水平可扩展.高可用.多租户日志聚合系统.用户既可以将Loki告警直接接入SLS开放告警,也可以先将Loki接入Grafana或Alert Manager ...
- 什么是 ELF 文件(文件格式)
ELF 是一种用于二进制文件.可执行文件.目标代码.共享库和核心转储格式文件. 是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI) ...