c语言数据22数组使用
1.1数组分配的空间
int a[10]={1,2,3,4,5,6,7,8,9,10};//分配空间 元素类型大小int4*元素个数10=40byte
元素之间空间连续
数组名代表数组首元素地址;a 取的是a[0]的地址;&a 是整个数组的地址
说明:
数组首元素地址:
0号元素的地址属性
数组名代表首元素地址
a+1:首字母的地址,偏移一个元素
数组的地址:
数组的地址属性表示整个数组的地址:&a
从地址编号上是一样的,但偏移量是不一样的
&a+1数组的地址,偏移整个数组长度地址
1.2数组初始化
说明:数组初始化就是给数组中每个元素赋初值
规则:
元素个数可以省略 a[]={10,20,30};
初始化个数可以少于元素个数a[10]={10,20,30};//没初始化默认0
数组初始化必须在定义语句中完成
1.3访问下标
1.3.1 数组下标的使用
下标:数组中的元素从0开始编号一直到(数组元素个数-1)
通过数组的下标来锁定数组元素,从而达到操作具体元素的作用
格式:数组名[下标号] //数组元素相应编号的内容
元素内容与地址:
数组名[编号]; //某号元素的内容
&数组名[编号]; //某号元素的地址
1.3.2数组名访问数组元素
数组名代表数组首元素地址
(数组名+i)的形式表示数组i号元素的地址
*(数组名+i)的形式 表示i号元素的内容
1.3.3通过指针的形式访问数组的元素
说明:通过指针来操作数组中的元素,首先要定义一个指针
指针指向对象类型 是元素的数据类型 数组的类型
int *p;
通过指针操作数组的话用 int (*p)[5];
//获取首元素地址
p=&a[0]; //(p=a;)
//下一个元素的地址及内容
p++;
//指针可能会偏移,需要指针重新指向首元素
1.4数组的应用
1.4.1数组元素累加
需求:定义一个10个元素的数组,每个元素是int类型,用户输入十个整型数据,求平均值。
分析:1通过循环结构将数据输入数据
int sum=0;
int val;
printf();
for(i=0;i<=10;i++)
{
scanf("%d",&a[i])
}
for(i=0;i<=10;i++)
{
sum+=a[i];
}
val=sum/10.0;
printf("%d",val);
2对数组累加和
3求平均值打印
1.4.2数组排序--冒泡排序
可以将数组中的数据进行从大到小或者从小到大排序
排序原理:
通过与后面各个位数据比较将最大/最小的值找出来。
若需要将数组从大到小进行排序,通过两两比较的方式将最小的数据排到最后,然后是次小.....
考虑循环的次数,和遍历的数量。
在第一次循环时,最小的数被排到了最后,因此在下一次排序时不需要遍历到最后一位,其他以此类推......因此遍历的数量为 数据个数-轮数
循环的最后一次,应该是最大和次大的数进行比较,因此所需要循环的循环次数为 数据个数-1
两层循环:
for(i=1;i<数据个数;i++)
{
for(j=0;j<数据个数-轮数;j++)
{
//从小到大
if(a[j]<a[j+1])
{
数据交换
/*这样排序不是将第一个数变成最大数,而是想将最后一个数变成最小数*/
}
}
}
1.4.3选择排序
相对于冒泡排序,选择排序更为直接,通过与后面各个数进行比较后将符合的放在最前面的位置
第一次循环将第一位数据换成我们需要的值....下一次循环的起点应该从下一个数据开始遍历
最后一次为最小数和次小数间比较因此循环次数为.....数据个数-1
如果我要找一个十个数据中的最大值,定义一个a变量让他的值与数组其中一个元素相等
然后让他和数组中其他元素进行比较,若遇到更大的数则得到改值继续往后比较,最终打印a即可
int t[10]={1,5,7,4,6,5,4,4,5,3,}
int a=t[0];
for(i=0;i<10;i++)
{
if(a<t[i+1])
{
a=t[i+1];
}
}
printf("%d",a);
同样的,我可以不定义a,直接用a[0]来接收最大值
int t[10]={1,5,7,4,6,5,4,4,5,3,}
for(i=0;i<10;i++)
{
if(t[0]<t[i+1])
{
t[0]=t[i+1];
}
}
printf("%d",t[0]);
但是这样只是让第一个元素复制了其中最大的值,因此需要中间变量使数组进行交换
int t[10]={1,5,7,4,6,5,4,4,5,3,};
int a;
for(int i=0;i<10;i++)
{
if(t[0]<t[i+1])
{
i=t[0];
t[0]=t[i+1];
t[i+1]=i;
}
}
printf("%d",t[0]);
这样第一个数就是最大数,接着后几位按照这个方式循环比较
int t[10]={1,5,7,4,6,5,4,4,5,3,};
int a;
for(int j=0;j<10-1;j++)
{
for(int i=0;i<10;i++)
{
if(t[j]<t[i+1])
{
a=t[j];
t[j]=t[i+1];//这样会把第一个值变为我们最需要的值
t[i+1]=a;
}
}
}
相关文章:
c语言数据22数组使用
1.1数组分配的空间 int a[10]{1,2,3,4,5,6,7,8,9,10};//分配空间 元素类型大小int4*元素个数1040byte 元素之间空间连续 数组名代表数组首元素地址;a 取的是a[0]的地址;&a 是整个数组的地址 说明: 数组首元素地址: 0号元…...
深入理解TensorFlow中的形状处理函数
摘要 在深度学习模型的构建过程中,张量(Tensor)的形状管理是一项至关重要的任务。特别是在使用TensorFlow等框架时,确保张量的形状符合预期是保证模型正确运行的基础。本文将详细介绍几个常用的形状处理函数,包括get_…...
MySQL数据库3——函数与约束
一.函数 1.字符串函数 MySQL中内置了很多字符串函数,常用的几个如下: 使用方法: SELECT 函数名(参数);注意:MySQL中的索引值即下标都是从1开始的。 2.数值函数 常见的数值函数如下: 使用方法: SELECT…...
⾃动化运维利器 Ansible-Jinja2
Ansible-Jinja2 一、Ansible Jinja2模板背景介绍二、 JinJa2 模板2.1 JinJa2 是什么2.2 JinJa2逻辑控制 三、如何使用模板四、实例演示 按顺序食用,口味更佳 ( 1 ) ⾃动化运维利器Ansible-基础 ( 2 ) ⾃动化运维利器 Ansible-Playbook ( 3 ) ⾃动化运维利器 Ansible…...
博客文章怎么设计分类与标签
首发地址(欢迎大家访问):博客文章怎么设计分类与标签 新网站基本上算是迁移完了,迁移之后在写文章的过程中,发现个人的文章分类和标签做的太混乱了,分类做的像标签,标签也不是特别的丰富&#x…...
FastDDS之DataSharing
目录 原理说明限制条件配置Data-Sharing delivery kindData-sharing domain identifiers最大domain identifiers数量共享内存目录 DataReader和DataWriter的history耦合DataAck阻塞复用 本文详细记录Fast DDS中Data Sharing的实现原理和代码分析。 DataSharing的概念࿱…...
计算机网络在线测试-概述
单项选择题 第1题 数据通信中,数据传输速率(比特率,bps)是指每秒钟发送的()。 二进制位数 (我的答案) 符号数 字节数 码元数 第2题 一座大楼内的一个计算机网络系统…...
【MySQL】数据库必考知识点:查询操作全面详解与深度解剖
前言:本节内容讲述基本查询, 基本查询要分为两篇文章进行讲解。 本篇文章主要讲解的是表内删除数据、查询结果进行插入、聚合统计、分组聚合统计。 如果想要学习对应知识的可以观看哦。 ps:本篇内容友友们只要会创建表了就可以看起来了哦!&am…...
鲸鱼机器人和乐高机器人的比较
鲸鱼机器人和乐高机器人各有其独特的优势和特点,家长在选择时可以根据孩子的年龄、兴趣、经济能力等因素进行综合考虑,选择最适合孩子的教育机器人产品。 优势 鲸鱼机器人 1)价格亲民:鲸鱼机器人的产品价格相对乐高更为亲民&…...
游戏引擎学习第15天
视频参考:https://www.bilibili.com/video/BV1mbUBY7E24 关于游戏中文件输入输出(IO)操作的讨论。主要分为两类: 只读资产的加载 这部分主要涉及游戏中用于展示和运行的只读资源,例如音乐、音效、美术资源(如 3D 模型和…...
详解模版类pair
目录 一、pair简介 二、 pair的创建 三、pair的赋值 四、pair的排序 (1)用sort默认排序 (2)用sort中的自定义排序进行排序 五、pair的交换操作 一、pair简介 pair是一个模版类,可以存储两个值的键值对.first以…...
AI驱动的桌面笔记应用Reor
网友 竹林风 说,已经成功的用 mxbai-embed-large 映射到 text-embedding-ada-002,并测试成功了。不愧是爱折腾的人,老苏还没时间试,因为又找到了另一个支持 AI 的桌面版笔记 Reor Reor 简介 什么是 Reor ? Reor 是一款由人工智…...
搜维尔科技:使用sensglove触觉反馈手套进行虚拟拆装操作
使用sensglove触觉反馈手套进行虚拟拆装操作 搜维尔科技:使用sensglove触觉反馈手套进行虚拟拆装操作...
深入理解电子邮件安全:SPF、DKIM 和 DMARC 完全指南
引言 在当今数字时代,电子邮件已经成为我们日常通信中不可或缺的一部分。然而,随之而来的安全问题也日益突出。邮件欺诈、钓鱼攻击和垃圾邮件等威胁不断增加,这促使了多种邮件安全验证机制的出现。本文将深入探讨三个最重要的邮件安全协议&a…...
【有啥问啥】复习一下什么是NMS(非极大值抑制)?
复习一下什么是NMS(非极大值抑制)? 什么是NMS? NMS(Non-Maximum Suppression)即非极大值抑制,是一种在计算机视觉领域,尤其是目标检测任务中广泛应用的后处理算法。其核心思想是抑…...
Java-异步方法@Async+自定义分布式锁注解Redission
如果你在使用 @Async 注解的异步方法中,使用了自定义的分布式锁注解(例如 @DistributedLock),并且锁到期后第二个请求并没有执行,这可能是由于以下几个原因导致的: 锁的超时时间设置不当:锁的超时时间可能设置得太短,导致锁在业务逻辑执行完成之前就已经自 动释放。…...
基本定时器---内/外部时钟中断
一、定时器的概念 定时器(TIM),可以对输入的时钟信号进行计数,并在计数值达到设定值的时候触发中断。 STM32的定时器系统有一个最为重要的结构是时基单元,它由一个16位计数器,预分频器,和自动重…...
实现了两种不同的图像处理和物体检测方法
这段代码实现了两种不同的图像处理和物体检测方法:一种是基于Canny边缘检测与轮廓分析的方法,另一种是使用TensorFlow加载预训练SSD(Single Shot Multibox Detector)模型进行物体检测。 1. Canny边缘检测与轮廓分析: …...
如何在MindMaster思维导图中制作PPT课件?
思维导图是一种利用色彩、图画、线条等图文并茂的形式,来帮助人们增强知识或者事件的记忆。因此,思维导图也被常用于教育领域,比如:教学课件、读书笔记、时间管理等等。那么,在MindMaster免费思维导图软件中࿰…...
ORIN NX 16G安装中文输入法
刷机版本为jetpack5.14.刷机之后预装了cuda、cudnn、opencv、tensorrt等,但是发现没有中文输入,所以记录一下安装流程。 jetson NX是arm64架构的,sougoupinyin只支持adm架构的,所以要选择安装Google pinyin 首先打开终端&#x…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
