第8章数组

上传人:小*** 文档编号:243362973 上传时间:2024-09-21 格式:PPT 页数:14 大小:233.50KB
返回 下载 相关 举报
第8章数组_第1页
第1页 / 共14页
第8章数组_第2页
第2页 / 共14页
第8章数组_第3页
第3页 / 共14页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,1-,14,第,8,章 数 组,杨章伟,e-mail:yang505412,课程内容安排,一维数组,二维数组,多维数组,小结,习题,一维数组,数组是同一数据类型的许多数据元素按某种顺序排列在一起的集合。通过使用数组名和索引就可以访问数组中的任意元素,这为处理统一类型的数据集合提供了极大的便利。,C,语言中的数组类型可以分为一维数组、二维数组和多维数组。,一维数组是,C,语言中用来存储和处理一维序列数据的数据类型。组合使用数组名和数组下标可以方便地访问数组元素。,定义一维数组,一维数组是用以存储一维数列中数据的集合。数组型变量的定义由四个部分组成:数组名、数据类型名、数组操作符(即,)和数组容量。其标准的定义方式为:,数据类型名 数组名,数组容量,;,数组名就是这个数组型变量的名字,命名规则与变量名一致,它是整个数组统一的名字。,数组中存储元素的数据类型由数据类型名给出,可以是任意的数据类型,例如,,int,型、,char,型,甚至可以是数组类型。,数组容量定义了数组可以存放的数据元素的个数,一般是值为整型常量的常量表达式,要放在数组操作符中间。,数组的维数可以从定义中直接看出:一维数组后只带一个索引,即变量名后只跟一个数组操作符。,访问一维数组元素,通过使用数组名、数组操作符和索引的组合可以访问数组中的任一元素,标准形式如下:,数组变量名,索引,;,索引必须为一个值为整数的表达式,但不要求是常量表达式。,索引的值应大于等于,0,,且小于数组容量。,数组内元素编号从,0,开始,直到数组容量的值减,1,。,例如,定义了以下数组:,char bookName20;,其数组内部元素的编号为,0,19,。为了表述上的方便和统一,本书正文中数组编号也从,0,到数组容量减,1,。那么,本书中所说的数组的第,0,个元素,即索引值为,0,的数组元素,也就是普通意义上的第一个元素;第,i,个元素,即索引值为,i,的数组元素,也就是普通意义上的第,i + 1,个元素。,【,范例,8-6】,在无序序列中查找一个数,本案例可以把无序序列保存在数组结构中,通过遍历数组,将目标数与所有数组元素比较。,二维数组,为了处理更复杂的二维序列数值,,C,语言定义了二维数组。二维数组用以存储各种类型的二维数列,是从一维数组衍生而来,使用方法与一维数组十分相似。,二维数组定义的标准形式,如下所示:,数据类型名 数组名,一维容量,二维容量,;,该语句定义了一个(一维容量,二维容量)的二维数组,其数组元素的类型为(数据类型名)。与一维数组一样,二维数组中的数组元素也可以是数组型。下面是定义二维数组的几个实例:,double matrix55;/* double,型二维数组 *,/,int,student68;,二维数组示例,本例要求将矩阵转置后输出。由于矩阵是一个二维数序列,因此,使用二维数组来存储是十分适合的。一种可行的进行矩阵转置的方法为:使用第二个数组来存储转置后的矩阵。具体的执行为:将数组第,i,行第,j,列的元素值存储到新数组第,j,行第,i,列。那么,新数组即为原数组的转置。,多维数组,多维数组是二维数组的延伸,可以用于处理更加复杂的多维数据集合。在一些复杂的程序中,多维数组是不可缺少的。,二维数组是数组元素为一维数组的特殊一维数组,那么,三维数组可以理解为数组元素是一维数组的特殊二维数组(或者也可以认为是:数组元素是二维数组的特殊一维数组)。将二维数组定义中的类型名替换为一维数组类型,依次类推,便可以得到,N,维数组为:数组元素是一维数组的特殊(,N,1,)维数组。其定义为:,数据类型名 数组名,一维容量,二维容量,三维容量,N,维容量,;,【,范例,8-11】,使用随机数给多维数组赋值,并找出其中最小值,。,小结,数组是,C,语言中十分重要和常用的数据类型,主要用于处理相同类型的数据序列。本章主要学习一维数组、二维数组和多维数组的定义和使用,并通过几个例子讨论了使用数组时需要注意的问题。,1,【,考题,】,下面程序的功能是分别求出,N*N,二维数组中两个对角线元素的和值,并输出。请在,_,处填入正确的内容。,#define N 3,int,main(void,),int,aNN,=1,2,3,4,5,6,7,8,9,i,s1=0,s2=0;,for(i,=0;i,N;i,+),s1=_; /*s1,为主对角线的和值*,/,s2=_; /*s2,为次对角线的和值*,/,printf(“s1=%d,s2=%d”,s1,s2);,return 0;,常见面试题,1,使用筛选法找出,1,到,n,之间的素数。,【,提示,】,由于素数为只有,1,和本身两个约数的数。可以使用筛选法求,1,到,n,的素数,使用一个,1,到,n,的数组,prime,来指示,1,到,n,的数是否为素数。如果,primei,为,0,,则为素数。其步骤如下:,从,2,开始,将,22,到,n,之间,2,的倍数删除,因为,2,的倍数含有约数,2,,因此,为合数;,从剩下的数据集合中找到最小的素数,3,,将,32,到,n,之间,3,的倍数删除;,从剩下的数据集合中找到最小的素数,x,,将,x2,到,n,之间,x,的倍数删除;,重复步骤,3,直到剩下的数集合为空时,算法结束。,综合练习,综合练习,2,求一个行列数相等矩阵的对角线上的元素之和。,【,提示,】,对角线上元素的行号和列号具有以下特征:行号等于列号,或者行号与列号和为总行数。,3,【,考题,】,设有二维数组,b,和,c,,在声明的同时进行了初始化,如下所示。,int,b23=1,2,3, 4,5,6;,int,c23=1,2,3,4,5,6,则,b11,和,c11,的值分别为多少?,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!