第3章数组及其应用.ppt
《第3章数组及其应用.ppt》由会员分享,可在线阅读,更多相关《第3章数组及其应用.ppt(33页珍藏版)》请在三一文库上搜索。
1、程序设计技术,C语言数据描述和C程序设计初步 结构化程序设计基础和C语言的控制结构 数组及其应用 函数与C程序结构 指针与函数 指针与数组 字符串及其应用 结构体类型和联合体类型 C语言的文件处理及其应用 位运算与枚举类型,数组及其应用,3.1 一维数组 3.1.1 一维数组的定义和初始化 3.1.2 一维数组元素的引用方法 3.2 二维数组和多维数组 3.2.1 二维数组和多维数组的定义 3.2.2 二维数组和多维数组元素引用方法 3.3 数组的简单应用 3.3.1 数组元素值的随机生成 3.3.2 常用排序方法 3.3.3 常用查找方法,一维数组,数组是有序数据的集合。一维数组是一组按线性
2、排列有序且个数有限的同类型变量构成的数据集合。每个数组有一个名称-数组名,数组中的每个数据元素有一个编号-下标,下标从0开始,是正整数。 一维数组在存储时需要占用连续的内存空间,其每一个数据元素所占用的字节长度与它们的数据类型相关。,3.1.1 一维数组的定义和初始化,一维数组的定义 存储类型 数据类型 数组名常量表达式; 存储类型:auto、static、extern 数据类型:数组元素的数据类型(基本,构造,指针) 常量表达式:指定数组的元素个数,也称数组长度。 例如:int s30; /*定义了1个整型数组s*/ 把30个学生的成绩放在一维数组s中,数组中每个元素表示一个学生的某科成绩,
3、如s5表示序号为5的学生成绩73。因序号从0开始,所以没有S30元素。,3.1.1 一维数组的定义和初始化,一维数组的初始化 数据类型 数组名n=常量列表; 其中: 常量列表:可是逗号分隔的常量或常量表达式。 n:数组长度,常量列表个数不能超过数组长度。 例如: int a10= 1,2,3,4,5,6,7,8,9,10 ;/*常量*/ int b3=1,3*5,4*3-2; /*常量表达式*/ int d5=1,2,3,4,5,6; /*超过数组长度*/ 注意: 数组名代表数组存储区的首地址,即第一个数组元素的存储地址。即a等价于&a0。,3.1.1 一维数组的定义和初始化,数组元素初始化的
4、几种形式 在数组初始化时,既可以对全部数组元素赋初始值,也可只对部分数组元素赋初始值,没有初始化的元素值为0(字符数组为0); char s110=a,b,c,d,e; /* 其余元素为0 */ 如果数组长度没有指定,以初始化数值个数作为数组的长度,或者说数据的个数是确定的,可以不指定数组的长度。 float a1=10,20,30.9,40,50; /* 数组长度为5 */ 将数组全部元素初始化为0值的简写形式 例如:int a10=0; int a5=0*10; 不能给数组整体赋值 例如,int a5=1,1,1,1,1 int a5=1; ,3.1.2 一维数组元素的引用,C语言规定:只
5、能逐个引用数组元素而不能一次引用整个数组。 数组元素(下标变量)表示形式:数组名下标 下标:整型常量或整型表达式,实型下标自动取整。 例:int b10; (定义数组b) b10=100; (下标越界) b=100; (整体操作数组) 常将数组和循环配合使用。通过改变数组的下标值来访问数组的各个元素。举例如下: double a10; for(i=0;i10;i+) scanf(“%lf”, /* 将a数组第6个元素(序号5)赋值为300 */,3.1.2 一维数组元素的引用,例3-1 将一个整型数组中所有元素值在同一个数组中按逆序重新存放并输出。 程序一次运行情况如下所示: Input te
6、n value of Array: 21 23 25 27 29 30 32 34 36 38 38 36 34 32 30 29 27 25 23 21,Arr0,Arr9,3.1.2 一维数组元素的引用,例3-4 打印杨辉三角形的前10行(用一维数组处理) 杨辉三角形的数列特点:即一行中某列的数是上一行该列上前两位数之和。比如第4行第2列的3等于第3行第1、2列的数1+2。每行第1列和最后1列都为1,行数=列数。,解题思路:利用数组具有保存数据的特点,将第1列初始化为1,第n行从第n列开始,从后往前计算该行中各列的值,在数组中已经保留了上一行的各列数据,利用此数据,可以计算新行的各列数据,
7、然后输出。,3.1.2 一维数组元素的引用,对每一行杨辉三角形值的具体处理方法为:首先用表达式yhrow=1将该行最后一个元素值置1,然后从后向前循环执行表达式:yhcol=yhcol+yhcol-1。即将一维数组 yh上一行当前位置元素值与其前面一个位置的元素值相加作为本行当前位置上的元素值。 row=1:yh1=1; 利用它可将每行的第1列置为1。 row=2:yh2=1; row=3:yh3=1;yh2=yh2+yh1=2; row=4:yh4=1;yh3=yh3+yh2=3; yh2=yh2+yh1=3; row=5:yh5=1;yh4=yh4+yh3=4; yh3=yh3+yh2=6
8、; yh2=yh2+yh1=4;,3.1.2 一维数组元素的引用,对每一行杨辉三角形值的具体处理方法为:首先用表达式yhrow=1将该行最后一个元素值置1,然后从后向前循环执行表达式:yhcol=yhcol+yhcol-1。即将一维数组 yh上一行当前位置元素值与其前面一个位置的元素值相加作为本行当前位置上的元素值。 row=1:yh1=1; row=2:yh2=1; row=3:yh3=1;yh2=yh2+yh1=2; row=4:yh4=1;yh3=yh3+yh2=3; yh2=yh2+yh1=3; row=5:yh5=1;yh4=yh4+yh3=4; yh3=yh3+yh2=6; yh2
9、=yh2+yh1=4;,各行的第1列都置为1,各行的最后1列都置为1,倒数第2列开始处理,1 yh1 1 1 yh1 yh2 1 2 1 yh1 yh2 yh3 1 3 3 1 yh1 yh2 yh3 yh4,数组及其应用,3.1 一维数组 3.1.1 一维数组的定义和初始化 3.1.2 一维数组元素的引用方法 3.2 二维数组和多维数组 3.2.1 二维数组和多维数组的定义 3.2.2 二维数组和多维数组元素引用方法 3.3 数组的简单应用 3.3.1 数组元素值的随机生成 3.3.2 常用排序方法 3.3.3 常用查找方法,3.2 二维数组和多维数组,在程序设计中如果需要处理诸如矩阵、平面
10、的或立体的图形等数据信息,使用一维数组显然不够,可以使用二维、三维以至更多维的数组。 一维数组存储线性关系的数据,二维数组则可以存储平面关系的数据,三维数组可以存储立体信息,依次类推可以合理地使用更高维数的数组。,数组的几个实例,用二维数组做字模 手机屏幕采用的字体称为“点阵”字体,如果不支持中文,则最小只需7*7点阵;程序要在屏幕上打出“A”时,则只需遍历该数组,然后在元素值为0的地方,打出空格,在元素值为1的地方,打出小点即可。对于这样一个点阵,对应的一个二维数组为:,数组的几个实例,多个班级的成绩管理 如:某年级有4个班,每个班最多不超过40人。则该成绩数据对应于一个二维数组: int
11、cj440; 提问:2班24号的成绩是哪个数组元素? 答案是:cj123; 注意:C语言中的数组下标从0开始,所以2班24号对应数组元素的下标是1和23。,数组的几个实例,多个年级的成绩管理 设有:年级总数为6;每个年级的班级数为4;每个班级的学生人数为40。 利用三维数组实现多个年级的成绩管理 int cj6440; 将三年级、2班、20号学生的成绩赋值为78 cj2119 = 78;,二维数组和多维数组的定义 一个二维数组可以分解为多个一维数组,可以推论多维数组:n维数组的每个元素由n-1维数组构成。 二维数组定义的一般形式为: 数据类型 数组名常量表达式常量表达式; 多维数组定义的一般形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 及其 应用
链接地址:https://www.31doc.com/p-2254779.html