c语言程序设计课件ppt(a套)之第七章数组_第1页
c语言程序设计课件ppt(a套)之第七章数组_第2页
c语言程序设计课件ppt(a套)之第七章数组_第3页
c语言程序设计课件ppt(a套)之第七章数组_第4页
c语言程序设计课件ppt(a套)之第七章数组_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京理工大学 /第七章第七章 数组数组第一节第一节 数组的基本概念数组的基本概念第二节第二节 一维数组一维数组第三节第三节 二维数组二维数组第四节第四节 字符数组字符数组第五节第五节 应用实例应用实例第七章第七章 数组数组l一班学生的学习成绩,如何存储和引用一班学生的学习成绩,如何存储和引用?l一行文字怎样存储一行文字怎样存储 ?l一个矩阵怎样存储一个矩阵怎样存储 ? 一组具有一组具有 相同数据类型相同数据类型 的数据的的数据的 有序集合有序集合 。这些数据的特点 :具有相同的数据类型。为了方便地使用这些数据, C语言提供了一种 构造数据类型: 数组。第一节 数组的基本概念第七章第七章 数组数组例如:存储学生成绩用 整型数组 mark100,存储一行文字用 字符数组 str200,存储一个矩阵用 二维 整型数组 a46。其中: mark、 str、 a 是数组名。方括号内是数组的 下标 。下标的个数称为数组的维数, mark、 str是 一维 数组、 a是 二维 数组。数组的成员称为 数组元素 。第一节 数组的基本概念第七章第七章 数组数组例如:例如: float mark100;char str200;int a46;l 数组名数组名 对数组的标识,遵循对数组的标识,遵循 C语言语言 标识符规则。标识符规则。mark、 str、 a 是数组名。是数组名。l 数据类型数据类型 就是数组元素的数据类型,就是数组元素的数据类型,数组元素的类型叫做数组的数组元素的类型叫做数组的 基类型基类型 。 mark是是 str是是 a是是 实型数组实型数组 、 字符数组字符数组 、 整型数组整型数组一、一维数组的定义一、一维数组的定义数据类型数据类型 数组名数组名 常量表达式常量表达式 第二节 一维数组第七章第七章 数组数组l下标运算符下标运算符 数组名后的数组名后的 方括号方括号 是是 下标运算符下标运算符。不允许使用()括号。不允许使用()括号。l常量表达式常量表达式 是数组元素的个数,即是数组元素的个数,即 数组长度数组长度。它必须是它必须是 常量常量 。前例:前例: mark的的 长度长度 是是 100, str的的 长度长度 是是 200,a的的 长度长度 是是 4*6。C语言不允许对数组的大小进行动态说明。语言不允许对数组的大小进行动态说明。下列语句是错误的。下列语句是错误的。int n = 8 , a1n; Error: Constant expression required in function main第二节 一维数组第七章第七章 数组数组l 数组元素在内存里 顺序 存放二、数组在内存的存放二、数组在内存的存放mark0mark1mark2mark3.mark9986.592.077.5低地址高地址每个数据元素占用的字节数,就是基类型的字节数第二节 一维数组第七章第七章 数组数组l 数组元素的引用方式:数组元素的引用方式:数组不能被整体引用,只能引用数组元素,格式数组不能被整体引用,只能引用数组元素,格式:数组名数组名 下标表达式下标表达式 例如:输出学生成绩例如:输出学生成绩for(i= 0;i= 0;i- -)printf(“%dn”, ai);第二节 一维数组第七章第七章 数组数组初始化:在说明语句中初始化:在说明语句中 赋初值赋初值 。考察。考察 例例 C7_202例例 C7_202四、一维数组四、一维数组 的初始化的初始化结论:结论:1.变量、数组元素不赋初值时,其变量、数组元素不赋初值时,其 值不定值不定 。2.语句语句 int a5=1,2,3,4,5; 为每一个数组元素赋为每一个数组元素赋初值。花括号内初值。花括号内 数据个数数据个数 与与 元素个数元素个数 一样一样 。此时可。此时可省略数组长度,省略数组长度, 如如 int a =1,2,3,4,5 。3.当当 数据个数数据个数 少于少于 元素个数元素个数 时,如时,如 int a5=1,2,3, 系统为其余元素赋系统为其余元素赋 0 。给定的数据位置必须连续。给定的数据位置必须连续,如,如 int a5=1,3,5是错误的。是错误的。4.数据个数数据个数 多于多于 元素个数元素个数 是错误的。是错误的。第二节 一维数组第七章第七章 数组数组例例 :选择法排序选择法排序将将 23, 1, 0, 43, -3, 7 从小到大排列。从小到大排列。选择法选择法 是取出是取出 第一个数第一个数 ,依次和后面的数比,依次和后面的数比较,如果后面的某数小于较,如果后面的某数小于 第一个数第一个数 ,则两个数,则两个数交换,比较结束后,交换,比较结束后, 第一个数第一个数 则是则是 最小最小 的数。的数。然后然后 第二个数第二个数 依次和后面的数比较,如果后依次和后面的数比较,如果后面的某数小于面的某数小于 第二个数第二个数 ,则两个数交换,比较,则两个数交换,比较结束后,结束后, 第二个数第二个数 则是则是 次小次小 的数;的数; 。编程时注意编程时注意 循环变量循环变量 的的 始值始值 和和 终值终值 。五、一维数组的应用第二节 一维数组第七章第七章 数组数组23 1 0 43 -3 7 1 2 3 4 5j=0i=023 11 23 0 43 -3 7 1 00 23 1 43 -3 7 0 43 -3-3 23 1 43 0 7 7-3t=a0;a0=a1;a1=t;t=a0;a0=a2;a2=t;t=a0;a0=a4;a4=t;第二节 一维数组第七章第七章 数组数组例例 C7_203-3 23 1 43 0 7 1 2 3 4 5j=0-3 0 23 43 1 7 i=1-3 0 1 43 23 7 i=2-3 0 1 7 43 23 i=3-3 0 1 7 23 43 i=4i=0第二节 一维数组第七章第七章 数组数组23 1 0 43 -3 7 1 2 3 4 5j=0-3 1 0 43 23 7i=00 初始 r = 1 r = j 则 r =ar ajj=12 r = j 则 r =ar ajj=2ar ajj=34 r = j 则 r =ar ajj=4ar ajj=5t = ai; ai = ar; ar = t;第二节 一维数组第七章第七章 数组数组for( i=0; iaj)r = j;temp = ai ;ai = ar ;ar = temp ;第二节 一维数组第七章第七章 数组数组例例 :起泡法排序起泡法排序7-3430123i=0a5a4a3a2a1a023123043-3437437-323011023-323743237-310i=1 i=21-3i=3432371-300-3i=44323710-3比较比较 a j a j+1 如果如果 成立成立 两元素两元素 交换交换第二节 一维数组第七章第七章 数组数组例例 C7_204for( i=0; iaj+1) temp = aj ;aj = aj+1 ;aj+1 = temp ;第二节 一维数组第七章第七章 数组数组下标多于一个的数组叫做 多维数组 。数组名 常量表达式 常量表达式 例如: int a34,b514;a3,4 a(3,4) a(3)(4)一、二维数组一、二维数组 的定义的定义 第三节 二维数组第七章第七章 数组数组数组 aa0 :a1 :a2 :a00a01a02a03a10a11a12a13a20a21a22a23a0是数组名,是元素 a00的地址a1是数组名 , 是 元素 a10的地址a2是数组名, 是 元素 a00的地址数组 a有三个分量, a是分量 a0的地址二、二维二、二维 数组的数组名第三节 二维数组第七章第七章 数组数组b00b01b02b10b11b121234563000H3002H3004H3006H3008H300AH例如:整型数组 bb23= 1,2,3,4,5,6 ;多维数组存放多维数组存放 : 多维数组的元素按行顺序存放。多维数组的元素按行顺序存放。地址地址 值值 数组元素数组元素三、多维数组三、多维数组 元素的存放第三节 二维数组第七章第七章 数组数组l 可以使用可以使用 对数据分组对数据分组例:例: int a34=1,2,3,4,5,6,7,8,9初始化后结果:初始化后结果: 1 2 3 45 6 7 89 0 0 0int a34=1,2,3,4,5,6,7,8,9初始化后结果:初始化后结果: 1 2 3 04 5 6 07 8 9 0 四、二维数组四、二维数组 的初始化 例例 C7_301第三节 二维数组第七章第七章 数组数组l 省略下标表达式当数据元素个数和数据个数 一致 时,数组说明语句中的 第一个下标 可以省略。例如: 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_302a 结果结果a0: 1 2 3 4a1: 5 6 7 8b 结果:结果:b0: 1 2 3 4b1: 5 6 7 8b2: 9 0 0 0c 结果:结果:c0: c00: 1 2c01: 3 4c1: c10: 5 6c11: 7 8 第三节 二维数组第七章第七章 数组数组省略其它位置的下标表达式是错误的。省略其它位置的下标表达式是错误的。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第三节 二维数组第七章第七章 数组数组l 二维数组举例例 C6_204: 两个矩阵相乘。1 2 3 4 1 3 5A= 5 6 7 8 B= 2 4 69 10 11 12 7 9 118 10 12C1,1= 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 +

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论