资源预览内容
第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
第9页 / 共57页
第10页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章第七章 数组数组 第一节第一节 数组的基本概念数组的基本概念 第二节第二节 一维数组一维数组 第三节第三节 二维数组二维数组 第四节第四节 字符数组字符数组 第五节第五节 应用实例应用实例 第七章第七章 数组数组 l l 一班学生的学习成绩,如何存储和引用一班学生的学习成绩,如何存储和引用 ? l l 一行文字怎样存储一行文字怎样存储? l l 一个矩阵怎样存储一个矩阵怎样存储 ? 一组具有一组具有相同数据类型相同数据类型的数据的的数据的有序集合有序集合。 这些数据的特点这些数据的特点:具有相同的数据类型。:具有相同的数据类型。 为了方便地使用这些数据,为了方便地使用这些数据,C C语言提供了一种语言提供了一种构造数构造数 据类型:据类型:数组。数组。 第一节 数组的基本概念 第七章第七章 数组数组 例如:存储学生成绩用整型数组 mark100 , 存储一行文字用字符数组 str200, 存储一个矩阵用二维整型数组 a46 。 其中:mark、str、a 是数组名。 方括号内是数组的下标。 下标的个数称为数组的维数,mark、 str是一维数组、a是二维数组。 数组的成员称为数组元素。 第一节 数组的基本概念 第七章第七章 数组数组 例如:例如: floatfloat markmark100;100; charchar strstr200;200; intint a a46;46; l l 数组名数组名 对数组的标识,遵循对数组的标识,遵循C C语言语言标识符规则。标识符规则。 markmark、strstr、a a 是数组名。是数组名。 l l 数据类型数据类型 就是数组元素的数据类型,就是数组元素的数据类型, 数组元素的类型叫做数组的数组元素的类型叫做数组的基类型基类型 。 markmark是是 strstr是是 a a是是 实型数组实型数组、 字符数组字符数组、 整型数整型数 组组 一、一维数组的定义一、一维数组的定义 数据类型数据类型 数组名数组名 常量表达式常量表达式 第二节 一维数组 第七章第七章 数组数组 l l 下标运算符下标运算符 数组名后的数组名后的方括号方括号是是下标运算符下标运算符 。 不允许使用()括号。不允许使用()括号。 l l 常量表达式常量表达式 是数组元素的个数,即是数组元素的个数,即数组长度数组长度 。 它必须是它必须是常量常量。 前例:前例:markmark的的长度长度是是100100,strstr的的长度长度是是200200, a a的的长度长度是是4 4* *6 6。 C C语言不允许对数组的大小进行动态说明。语言不允许对数组的大小进行动态说明。 下列语句是错误的。下列语句是错误的。 intint n = 8 , a1n; n = 8 , a1n; ErrorError: C: Constant expression required in function mainonstant expression required in function main 第二节 一维数组 第七章第七章 数组数组 l数组元素在内存里顺序存放 二、数组在内存的存放二、数组在内存的存放 mark0 mark1 mark2 mark3 . . . mark99 86.586.5 92.092.0 77.577.5 52.052.0 . . . . . . 94.094.0 低地址 高地址 每个数据元 素占用的字 节 数,就是基 类 型的字节数 第二节 一维数组 第七章第七章 数组数组 l l 数组元素的引用方式:数组元素的引用方式: 数组不能被整体引用,只能引用数组元素,格数组不能被整体引用,只能引用数组元素,格 式:式: 数组名数组名 下标表达式下标表达式 例如:输出学生成绩例如:输出学生成绩 for(ifor(i= = 0;i= 0;0;i i- - -)-) printf(“%dn”,printf(“%dn”,a a i i);); 第二节 一维数组 第七章第七章 数组数组 初始化:在说明语句中初始化:在说明语句中赋初值赋初值。考察。考察例例C7_202C7_202 例例C7_202C7_202 四、一维数组四、一维数组的初始化的初始化 结论:结论: 1 1. .变量、数组元素不赋初值时,其变量、数组元素不赋初值时,其值不定值不定。 2 2. .语句语句 intint aa5 5= 1 1, ,2 2, ,3 3, ,4 4, ,5 5 ; ; 为每一个数组元素赋为每一个数组元素赋 初值。花括号内初值。花括号内数据个数数据个数与与元素个数元素个数一样一样。此时可。此时可 省略数组长度,省略数组长度, 如如 intint a a =1,2,3,4,5=1,2,3,4,5 。 3 3. .当当数据个数数据个数少于少于元素个数元素个数时,如时,如 intint a5=1,2,3 a5=1,2,3 ,系统为其余元素赋系统为其余元素赋 0 0 。给定的数据位置必须连续。给定的数据位置必须连续 ,如,如 intint a5=1,3,5 a5=1,3,5是错误的。是错误的。 4 4. .数据个数数据个数多于多于元素个数元素个数是错误的。是错误的。 第二节 一维数组 第七章第七章 数组数组 例例: :选择法排序选择法排序 将将 2323,1 1,0 0,4343,-3-3,7 7 从小到大排列。从小到大排列。 选择法选择法是取出是取出第一个数第一个数,依次和后面的数,依次和后面的数 比较,如果后面的某数小于比较,如果后面的某数小于第一个数第一个数,则两,则两 个数交换,比较结束后,个数交换,比较结束后,第一个数第一个数则是则是最小最小 的数。的数。 然后然后第二个数第二个数依次和后面的数比较,如果依次和后面的数比较,如果 后面的某数小于后面的某数小于第二个数第二个数,则两个数交换,则两个数交换, 比较结束后,比较结束后,第二个数第二个数则是则是次小次小的数;的数; 。 编程时注意编程时注意循环变量循环变量的的始值始值和和终值终值。 五、一维数组的应用 第二节 一维数组 第七章第七章 数组数组 2323 1 0 43 -3 7 1 0 43 -3 7 12345j=0 i=0 2323 1 1 1 1 2323 0 43 -3 7 0 43 -3 7 1 1 0 0 0 0 2323 1 1 43 -3 7 43 -3 7 0 0 4343-3 -3 -3-3 2323 1 43 0 1 43 0 7 7 7 7 -3-3 t=a0;a0=a1;a1=t;t=a0;a0=a1;a1=t; t=a0;a0=a2;a2=t;t=a0;a0=a2;a2=t; t=a0;a0=a4;a4=t;t=a0;a0=a4;a4=t; 第二节 一维数组 第七章第七章 数组数组 例例C7_203C7_203 -3-3 23 1 43 0 7 23 1 43 0 7 12345j=0 -3-3 0 0 23 43 1 7 23 43 1 7 i=1 -3-3 0 0 1 1 43 23 7 43 23 7 i=2 -3-3 0 0 1 1 7 7 43 23 43 23 i=3 -3-3 0 0 1 1 7 7 2323 43 43 i=4 i=0 第二节 一维数组 第七章第七章 数组数组 for( i=0; iajaj) r = j;r = j; temp = temp = aiai ; ; aiai = = arar ; ; arar = temp ; = temp ; 第二节 一维数组 第七章第七章 数组数组 例例: :起泡法排序起泡法排序 7 7 - - 3 3 4 4 3 3 0 0 1 1 2 2 3 3 i=i=0 0 a a 5 5 a a 4 4 a a 3 3 a a 2 2 a a 1 1 a a 0 0 7 7 - - 3 3 4 4 3 3 0 0 2 2 3 3 1 1 7 7 - - 3 3 4 4 3 3 2 2 3 3 0 0 1 1 7 7 - - 3 3 4 4 3 3 2 2 3 3 0 0 1 1 7 7 4 4 3 3 - - 3 3 2 2 3 3 0 0 1 1 4 4 3 3 7 7 - - 3 3 2 2 3 3 0 0 1 1 4 4 3 3 7 7 - - 3 3 2 2 3 3 0 0 1 1 4 4 3 3 7 7 - - 3 3 2 2 3 3 1 1 0 0 4 4 3 3 7 7 - - 3 3 2 2 3 3 1 1 0 0 4 4 3 3 7 7 2 2 3 3 - - 3 3 1 1 0 0 4 4 3 3 2 2 3 3 7 7 - - 3 3 1 1 0 0 4 4 3 3 2 2 3 3 7 7 - - 3 3 1 1 0 0 i=i=1 1i=i=2 2 4 4 3 3 2 2 3 3 7 7 - - 3 3 1 1 0 0 4 4 3 3 2 2 3 3 7 7 1 1 - - 3 3 0 0 4 4 3 3 2 2 3 3 7 7 1 1 - - 3 3 0 0 i=i=3 3 4 4 3 3 2 2 3 3 7 7 1 1 - - 3 3 0 0 4 4 3 3 2 2 3 3 7 7 1 1 0 0 - - 3 3 4 4 3 3 2 2 3 3 7 7 1 1 0 0 - - 3 3 i=i=4 4 4 4 3 3 2 2 3 3 7 7 1 1 0 0 - - 3 3 4 4 3 3 2 2 3 3 7 7 1 1 0 0 - - 3 3 比较比较 a a j j a a j+1j+1 如果如果成立成立两元素两元素交换交换 第二节 一维数组 第七章第七章 数组数组 例例C7_204C7_204 for( i=for( i=0 0; iaj+1) temp = temp = ajaj ; ; ajaj = aj+1 ; = aj+1 ; aj+1 = temp ; aj+1 = temp ; 第二节 一维数组 第七章第七章 数组数组 下标多于一个的数组叫做多维数组。 数组名常量表达式 常量表达式 例如: int a34,b514; a3,4 a(3,4) a(3)(4) 一、二维数组一、二维数组的定义的定义 第三节 二维数组 第七章第七章 数组数组 数 组a a 0 : a 1 : a 2 : a 00 a 01 a 02 a 03 a 10 a 11 a 12 a 13 a 20 a 21 a 22 a 23 a0是数组名,是元素a00的地址
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号