当前位置: 首页 > news >正文

C语言-数组

数组的定义

数组:是一种容器,可以同时用来存储同种数据类型的多个值

数组的定义格式:

数组的初始化;定义数组的时候,第一次给数组赋值.

1. 定义数组存储5个学生的年龄,并初始化

int studentAges[5] = {18, 19, 20, 17, 18};

或者不指定数组长度,让编译器自动计算:

int studentAges[] = {18, 19, 20, 17, 18};  // 数组长度自动确定为5

2. 定义数组存储女朋友的身高,并初始化

对于存储身高的数组,可以使用浮点类型(如floatdouble)来定义:

float girlfriendHeights[] = {165.5, 168.2, 170.0, 163.7, 167.3};

或者指定数组长度:

float girlfriendHeights[5] = {165.5, 168.2, 170.0, 163.7, 167.3};

数组中的元素的访问

索引:索引就是数组的编号,也叫角标,下标,编号

特点:从0开始,连续+1,不间断

数组元素的获取:数组名[索引]

然后用变量接收;int num = 数组名[索引];

数组元素的修改:数组名[索引]=xxx;

数组的遍历

数组常见的两个小问题

问题①:数组作为函数的参数进行传递

问题②:数组的索引越界

数组作为函数的参数进行传递

接下来由我写出来一个案例帮大家理解第一个问题:

这是一个错误的代码演示,他的运行结果和我们预想的不是一样的,他这段代码理论上来说是可以通过函数便利数组的,但是最后只便利了两个数,在下图是代码,下下图是结果

那么这究竟是怎么一回事呢?

根据上面的点,我们可以知道,数组作为函数的参数进行传递,传递的只是函数的首地址,也就是最后在函数中用用int len=sizeof(数组)/sizeof(数组[0])

算出来的是八个字节,因为此时数组是地址,没有看懂的可以去了解一下黑马的c语言的p100集

了解了问题的来源,我们如何解决呢?

很简单,既然在函数内部传入的数组是首地址,那么我们在函数外部计算数组长度len就可以了

函数的索引越界

索引越界是指程序试图访问数组、列表、字符串等序列类型数据结构中不存在的索引位置。在大多数编程语言中,当访问超出有效范围的索引时,会抛出异常或错误。

若发生越界不会报错,但会导致数据错乱,因此只需按指定长度访问即可,无需额外演示。

数组练习1-求最值

需求:已知数组元素为{33,5,22,44,55}

请找出数组中最大值并打印在控制台

数组联系2-遍历数组并求和

基础版

升级版

数组练习3-反转数组

数组常见算法--基本查找

很简单的算法,通过order函数遍历数组,如果数组中的数等于我们查找的数,那就输出此时遍历数组时候的序号

数组常见算法--二分查找/折半查找

二分查找的前提条件;

这是二分查找的算法,原理就是我们猜数字对半猜的原理,由于我们不知道到底要猜多少次,因此我们使用while循环,然后我们定义0号位为最小值,最右边的为最大值,定义中间的位置为中间值mid,通过mid与我们查找的值比较,mid大了就把max变成mid-1,然后改变mid继续比较,最后mid总会与num相同,这样我们就能实现查找num序号的功能,通过这个功能,我们可以实现万级数据的快速查找。

数组常见算法--插值查找

差值查找就是二分查找的优化

数组常见算法--冒泡排序

数组常见算法--选择排序

http://www.dtcms.com/a/503334.html

相关文章:

  • 01-(JavaWeb)前端部分(HTML+CSS)
  • Sendable装饰器的使用
  • 产品经理做网站东莞网站搭建
  • vue3中的watch使用
  • SQL Server安全配置全面检查与优化方案
  • 唐山市城乡建设局网站哪个网站做的系统好用吗
  • 包头市建设厅官方网站开网店详细步骤流程
  • 什么是前端、后端与全栈开发,Qt属于什么?
  • Solidity 合约超限问题及优化策略:以 FHEFactory 为例
  • 第一届贵州理工校赛--ez-uploadez-upload-plus
  • 聊聊 Unity(小白专享、C# 小程序 之 联机对战)
  • ava编辑一个小程序操作教程分享一下C++
  • Java Web 程序在 Linux 上的部署
  • HTTP Client/Server 实践:cpp-httplib使用
  • 项目招商网站大全河北智慧团建网站
  • 量化交易的开源框架
  • 【Linux系统编程】4. Linux权限
  • 个人主页网站制作免费融资平台哪家好
  • week6
  • ZigBee中的many-to-one和link status(3)
  • 大型网站多少钱佳源房地产最新消息
  • Linux Bash(一)
  • 【Redis】哨兵与对脑裂的情况分析
  • 49.词向量:把文字变成数字
  • 【pulldown-cmark】创建自定义分支
  • python 网站开发流程图网站首页被k还有救吗
  • TsingtaoAI受邀参加HICOOL2025全球创业者峰会项目对接会
  • windows10激活解决办法
  • 学习建网站玩网站建设学习包装设计需要哪些信息
  • 【图像处理】rgb和srgb