七章数组.ppt
《七章数组.ppt》由会员分享,可在线阅读,更多相关《七章数组.ppt(48页珍藏版)》请在三一办公上搜索。
1、北京理工大学 http:/www.bit9.dhs.org/,数组,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 2 页,第七章 数组,第一节 数组的基本概念第二节 一维数组第三节 二维数组第四节 应用实例,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 3 页,7-1 数组的基本概念,一班学生的学习成绩,如何存储和引用?一行文字怎样存储?一个矩阵怎样存储?.,一组具有相同数据类型的数据的有序集合。,?,这些数据的特点:具有相同的数据类型。为了方便地使用这些数据,C语言提供了一种构造数据类型:数组。,北京理工大学 http:/w
2、ww.bit9.dhs.org/,共 12 页 第 4 页,7-1 一维数组(续1),例如:存储学生成绩用整型数组 mark100,存储一行文字用字符数组 str200,存储一个4*6的矩阵用二维整型数组 a46。其中:mark、str、a 是数组名。方括号内是数组的下标。下标的个数称为数组的维数,mark、str是一维数组、a是二维数组。数组的成员称为数组元素。,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 5 页,7-2 一维数组,例如:float mark100;char str200;int a46;数组名 对数组的标识,遵循C语言标识符规则。mark
3、、str、a 是数组名。数据类型 就是数组元素的数据类型,数组元素的类型叫做数组的基类型。mark是 str是 a是 实型数组、字符数组、整型数组,一、一维数组的定义,数据类型 数组名常量表达式,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 6 页,7-2 一维数组(续1),下标运算符 数组名后面的方括号是下标运算符。不允许使用()括号。常量表达式 是数组元素的个数,即数组长度。它必须是常量。mark的长度是100,str的长度是200,a的长度是4*6。C语言不允许对数组的大小进行动态说 明,下列语句是错误的。int n=8,a1n;Error:Consta
4、nt expression required in function main,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 7 页,7-2 一维数组(续2),数组元素在内存里顺序存放一维数组,二、数组在内存的存放,每个数据元素占用的字节数,就是基类型的字节数,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 8 页,7-2 一维数组(续3),数组元素的引用方式:数组不能被整体引用,只能引用数组元素,格式:数组名下标表达式 例如:输出学生成绩 for(i=0;i100;i+)printf(“%fn”,marki);下标:下标表达式
5、的值必须是整型数据。辨疑:在说明语句中,方括号内的值是元素个数,如:int a10,说明数组a一共有10个元素。引用时第一个元素的下标是 0,即a0、a1、a9。,三、数组元素的引用,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 9 页,7-2 一维数组(续4),被称为下标运算符。数组名、数组元素是两种不同性质的数据。数组名是数组的首地址,是一个地址量。数组元素则是数值。引用数组元素时,根据首地址和下标数,计算出该元素的实际地址,取出该地址的内容进行操作。,如引用 mark2:(1)计算 2000+2*4=2008(2)从取出2008的内容,下标运算符,北京理
6、工大学 http:/www.bit9.dhs.org/,共 12 页 第 10 页,7-2 一维数组(续4),数组元素的性质 数组元素的性质,与该类型的变量相同。例C7_201:从键盘输入10个整数,再反序输出它们。main()int i,a10;for(i=0;i=0;i-)printf(“%dn”,ai);,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 11 页,7-2 一维数组(续5),初始化:在说明语句中赋初值。考察例C7_202,例C7_202,结论:1.变量、数组元素不赋初值时,其值不定。2.语句 int a5=1,2,3,4,5;为每一个数组元素
7、赋初值。花括号内数据个数与元素个数一样。此时可省略数组长度,如 int a=1,2,3,4,5。3.当数据个数少于元素个数时,如 int a5=1,2,3,系统为其余元素赋 0。4.数据个数多于元素个数是错误的。给定的数据位置必须连续,如 int a5=1,3,5。,四、一维数组的初始化,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 12 页,7-2 一维数组(续6),例C6_103:选择法排序 将 23,1,0,43,-3,7 从小到大排列。选择法是取出第一个数,依次和后面的数比较,如果后面的某数小于第一个数,则两个数交换,比较结束后,第一个数则是最小的数。
8、然后第二个数依次和后面的数比较,如果后面的某数小于第二个数,则两个数交换,比较结束后,第二个数则是次小的数;。编程时注意循环变量的始值和终值。,五、一维数组的应用,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 13 页,7-2 一维数组(续7),i=0,23,1,1,0,0,43,-3,7,-3,t=a0;a0=a1;a1=t;,t=a0;a0=a2;a2=t;,t=a0;a0=a4;a4=t;,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 14 页,7-2 一维数组(续7),例C7_203,i=1,i=2,i=3,i=4,i
9、=0,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 15 页,7-2 一维数组(续7),i=0,ar aj,j=1,ar aj,j=2,ar aj,j=3,ar aj,j=4,ar aj,j=5,t=ai;ai=ar;ar=t;,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 16 页,7-2 一维数组(续8),for(i=0;i a j)r=j;temp=a i;a i=a r;a r=temp;,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 17 页,7-2 一维数组(续9),例C7_204
10、:起泡法排序,i=0,a5a4a3a2a1a0,i=1,i=2,i=3,i=4,比较 a j a j+1 如果成立两元素交换,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 18 页,7-2 一维数组(续10),例C6_104:起泡法排序,i=0,a5a4a3a2a1a0,i=1,i=2,i=3,i=4,4,i 控制外层循环:for(i=0;i;i+),n-1,j 控制内层循环:for(j=;j;j+),0,n-1,n-1-i,n-i-1,例C7_204,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 19 页,7-3 二维数组,
11、下标多于一个的数组叫做多维数组。,数组名常量表达式 常量表达式,例如:int a34,b514;a3,4 a(3,4)a(3)(4),一、二维数组的定义,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 20 页,7-3 二维数组(续1),数组a,a0:,a1:,a2:,a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,a0是数组名,是元素a00的地址,a1是数组名,是元素a10的地址,a2是数组名,是元素a00的地址,数组a有三个分量,a是分量a0的地址,二、二维数组的数组名,北京理工大学 http:/www.bit
12、9.dhs.org/,共 12 页 第 21 页,7-3 二维数组(续2),例如:整型数组 bb23=1,2,3,4,5,6;,多维数组存放:多维数组的元素按行顺序存放。,地址 值 数组元素,三、多维数组元素的存放,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 22 页,7-3 二维数组(续3),可以使用 对数据分组例:int a34=1,2,3,4,5,6,7,8,9 初始化后结果:1 2 3 4 5 6 7 8 9 0 0 0 int a34=1,2,3,4,5,6,7,8,9 初始化后结果:1 2 3 0 4 5 6 0 7 8 9 0,四、二维数组的初
13、始化,例C7_301,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 23 页,7-3 二维数组(续4),省略下标表达式 当数据元素个数和数据个数一致时,数组说明语句中的第一个下标可以省略。例如:int a4=1,2,3,4,5,6,7,8;int b4=1,2,3,4,5,6,7,8,9;int c22=1,2,3,4,5,6,7,8;初始化结果:,例C7_302,a 结果a0:1 2 3 4a1:5 6 7 8,b 结果:b0:1 2 3 4b1:5 6 7 8b2:9 0 0 0,c 结果:c0:c00:1 2 c01:3 4c1:c10:5 6 c11:
14、7 8,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 24 页,7-3 二维数组(续5),省略其它位置的下标表达式是错误的。int a2=1,2,3,4,5,6,7,8;int c2 2=1,2,3,4,5,6,7,8;int c22=1,2,3,4,5,6,7,8;,例C7_303,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 25 页,7-3 二维数组(续5),二维数组举例例C6_204:两个矩阵相乘。1 2 3 4 1 3 5 A=5 6 7 8 B=2 4 6 9 10 11 12 7 9 11 8 10 12C1,1
15、=A1,1*B1,1+A1,2*B2,1+A1,3*B3,1+A1,4*B4,1C1,2=A1,1*B1,2+A1,2*B2,2+A1,3*B3,2+A1,4*B4,2 C3,3=A3,1*B1,3+A3,2*B2,3+A3,3*B3,3+A3,4*B4,3,北京理工大学 http:/www.bit9.dhs.org/,共 12 页 第 26 页,7-3 二维数组(续6),分析结果矩阵C有3行3列。重复求一行 for(i=0;in;i+)重复求行中一个元素 for(j=0;jn;j+)重复将每一项加入 for(k=0;km;k+)cij=cij+aik*bkj;,例C7_304,北京理工大学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组
链接地址:https://www.31ppt.com/p-5372682.html