第4章 数组.ppt
上传人:sy****28 上传时间:2024-09-13 格式:PPT 页数:40 大小:218KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

第4章 数组.ppt

第4章数组.ppt

预览

免费试读已结束,剩余 30 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第四章数组4.1数组的概念按数组元素的类型不同,数组可分为:数值数组、字符数组、指针数组、结构体类型数组等多种类型。根据数组下标数目的不同分为:一维数组、二维数组和多维数组。一维数组有一个下标,二维数组有两个下标。4.2一维数组4.2.1一维数组的定义(1)数组的类型实际上是指数组元素的取值类型。(2)数组名的书写规则应符合标识符的书写规定。(3)数组名不能与其它变量名相同。(4)数组名后面的方括号不能用圆括号代替。(5)方括号中的常量表达式可以包含常量、符号常量或常量表达式,但绝不可以包含变量。并且常量表达式应是整型数,尽量不取小数。(6)方括号中常量表达式表示数组元素的个数,它必须大于或等于1,数组元素的下标是从0开始编号。4.2.2一维数组的初始化数组与变量相似,在使用前,需对其元素进行赋值,然后才能引用。常见的一维数组初始化有两种方法:(1)用赋值语句初始化这种赋值方式与普通变量赋值是一样的,使用赋值语句或输入函数。(2)在数组定义时初始化例如:inta[5]={0,1,2,3,4};对数组的初始化需要注意以下几点:(1)可以对数组中的部分元素赋值。对不赋值的数组元素在花括号中相应的位置上缺省它的值,但逗号不能省,值被默认为0。(2)如对全部的数组元素赋值,可以不指定数组长度。其长度由花括号中初始值的个数决定。(3)初始化数组时,不能对整个数组赋值。4.2.3一维数组的引用在C语言中,数组不能整体引用,只能引用其中的元素,如果要引用数组中的全部元素,只能通过循环语句来实现。我们看下面的例题是如何实现对数组全部元素的引用的。【例4.1】从键盘上输入10个整数,并输出最小值。4.2.4一维数组应用举例【例4.3】用数组解决Fibonacci数列问题,求出其前20项存储在数组中,并将它们输出。Fibonacci数列是一递推数列,满足下面关系:fib(0)=1,fib(1)=1,fib(n)=fib(n-1)+fib(n-2)(n≥2)对于这个问题,可以定义一个整型数组,用于存放20个整数,先将fib(0)和fib(1)赋初值,然后建立一个循环,每次取出两个数进行递推求值,并将其存入数组中,每输出5项数据换行,直到20项都被计算出来为止。【例4.4】用冒泡法对5个整数按从小到大的顺序排列。冒泡排序法是我们经常使用的经典排序法,这种方法执行的效率不高,但比较简单,其基本思路是:将相邻两个数进行比较,将较小的数调到前头。从纵向看,这些数据的交换就像水中的气泡不断上浮。4.3二维数组和多维数组4.3.1二维数组的定义4.3.2二维数组的初始化二维数组的初始化常见的二维数组初始化有两种方法:(1)分行给二维数组赋初值。例如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,7,7,5}};(2)可以将所有数据写在一个花括弧内。例如:inta[3][4]={1,2,3,4,5,6,7,8,9,7,7,5};对二维数组进行初始化时,需要注意如下问题:(1)分行赋值时,每一行初始化值用“{}”括起来,并用“,”分开。有些初学者常常将“{}”写成“[]”或“<>”,这样是不对的。(2)对二维数组进行初始化时,可以对部分元素赋初值,未赋值的元素自动取0。(3)如果对全部元素都赋初值,则定义数组时对第一维的长度可以省略,但第二维的长度不能省。4.3.3二维数组的引用2.操作二维数组的常规方法是使用双重循环,用外层循环控制二维数组下标1的变化,用内循环控制数组下标2的变化,程序将按行操作数组的每一个元素。【例4.5】判断下面程序的运行结果。修改程序4.3.4二维数组应用举例4.3.5多维数组一般情况下,在多维数组中我们只介绍三维数组。我们在前面已经讲过,一维数组可以看作是一维的线性空间,二维数组可以看作是平面空间,则三维数组就是三维的立体空间。三维数组的存储的道理与二维数组相同。【例4.8】从键盘上为三维数组输入值并将数组全部输出。4.4字符数组与字符串4.4.1字符数组的定义4.4.2字符数组的初始化2.用字符串的方式对数组作初始化赋值。例如:chars[]={"Cprogram"};chars[]="Cprogram";该字符串初始化自动在字符串的末尾加结束符'\0'。对字符数组进行初始化时,应该注意以下问题:1.字符数组的长度至少应该比实际存储的字符串的长度多1。2.使用字符常量初始化时,如果字符末尾没有'\0',则字符数组不能按字符串处理,只能作字符逐个处理。3.一维字符数组在初始化时,可以省略其长度,默认长度为初始化字符串的长度加1,如果没有初始化赋值,则必须说明数组的长度。4.二维数组初始化时,只可省略下标1,不可省