C语言程序设计任务教程  教学课件 ppt 作者 彭德林 柴方艳 第6章

上传人:E**** 文档编号:89392917 上传时间:2019-05-24 格式:PPT 页数:38 大小:1,016.50KB
返回 下载 相关 举报
C语言程序设计任务教程  教学课件 ppt 作者 彭德林 柴方艳 第6章_第1页
第1页 / 共38页
C语言程序设计任务教程  教学课件 ppt 作者 彭德林 柴方艳 第6章_第2页
第2页 / 共38页
C语言程序设计任务教程  教学课件 ppt 作者 彭德林 柴方艳 第6章_第3页
第3页 / 共38页
C语言程序设计任务教程  教学课件 ppt 作者 彭德林 柴方艳 第6章_第4页
第4页 / 共38页
C语言程序设计任务教程  教学课件 ppt 作者 彭德林 柴方艳 第6章_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《C语言程序设计任务教程  教学课件 ppt 作者 彭德林 柴方艳 第6章》由会员分享,可在线阅读,更多相关《C语言程序设计任务教程  教学课件 ppt 作者 彭德林 柴方艳 第6章(38页珍藏版)》请在金锄头文库上搜索。

1、第6章 数组,主编:彭德林 柴方艳,C语言程序设计任务教程,C语言程序设计任务教程 第6章 数组,C语言程序设计任务教程 第6章 数组,了解什么是数组。掌握一维数组的定义、引用及赋值,在程序中熟练应用一维数组。,任务描述,任务1 认识一维数组,任务1 认识一维数组,任务1 认识一维数组,1一维数组的定义 在语言中,数组和变量相同,必须先定义,后使用。 一维数组的定义方式为: 类型说明符 数组名常量表达式;,7,6.1.1 一维数组的定义和引用,例如: int a20; /*定义整型数组a,有20个整型元素*/ float b20; /*定义浮点型数组b,有20个浮点型元素*/ char ch2

2、0; /*定义字符数组ch,有20个字符型元素*/,其中,类型说明符说明了该数组中每个元素的数据类型。数组名是用户定义的数组的名称,应符合标识符的命名规则,一般不超过11个字符。方括号中的常量表达式应具有一个确定的值,这个值表示该数组所具有元素的个数,也就是规定了数组的长度。,注意事项,数组名不能与其他变量名相同。,类型说明符是指数组中元素的数据类型。对于同一个数组,其所有元素的数据类型都是相同的。,数组名是该数组在存储区域的首地址,也就是该数组第一个元素的地址,是一个常量。,C语言规定,不允许对数组的大小进行动态定义,故不能在方括号中用变量表示元素的个数,但可以是符号常数或常量表达式,如in

3、t m5+2。,6.1.1 一维数组的定义和引用,2一维数组元素的引用 数组元素是组成数组的基本单元。每个数组元素就是一个变量,其标识方法为数组名后加下标,下标表示了元素在数组中的顺序号。一维数组元素的表示形式为: 数组名下标,9,6.1.1 一维数组的定义和引用,例如: 定义了一个数组:int a5;则该数组为整型数组,数组名为a,长度为5,该数组共有5个数组元素,分别为a0,a1,a2,a3,a4。,注意事项,在C语言中,对于数值数组,只能逐个地使用数组元素,而不能一次引用整个数组,故数组的使用通常与循环语句结合。对于被引用的数组元素,可以像普通变量一样进行其类型所允许的所有运算。,下标表

4、示数组元素在数组中的偏移量,数组元素的下标从0开始,最大为该数组长度减1。,C语言中,由于系统不做下标越界检查,越界也不会报错,因此,程序中引用数组元素要注意不要越界。,下标可以是常量、变量或表达式,但其值必须为整型,当为小数时,编译时将自动取整。,6.1.1 一维数组的定义和引用,1用赋值语句给一维数组赋值 如以下源程序:,11,6.1.2 一维数组的赋值,#include void main() int i,a10; for(i=0;i10;i+) ai=i; for(i=0;i10;i+) printf(“a%d=%d “,i,ai); ,运行结果: a0=0 a1=1 a2=2 a3=

5、3 a4=4 a5=5 a6=6 a7=7 a8=8 a9=9,2一维数组的初始化 数组赋值还可采用初始化方法。数组初始化是指在数组定义时给数组元素赋初值。一维数组初始化的一般形式为: 类型说明符 数组名常量表达式=值,值,值;,12,6.1.2 一维数组的赋值,在 中的各数据值即为各数组元素的初值,各值之间用逗号间隔。 例如:int a10=0,1,2,3,4,5,6,7,8,9; 相当于a0=0,a1=1,a2=2,a3=3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9。,注意事项,如给全部元素赋初值,则在数组说明中,可以不给出数组元素的个数。例如:int a5=1,2,3,

6、4,5;可写为:int a =1,2,3,4,5;,可以只给部分元素赋初值。当 中值的个数少于元素个数时,只给前面部分元素赋值。,只能给元素逐个赋初值,不能给数组整体赋值。例如,给10个元素全部赋1值,不能写为:int a10=1;,6.1.2 一维数组的赋值,14,6.1.2 一维数组的赋值,/*example6-2*/ #include void main() int i,a10=1,3,7,8,12,32,40,26,9,15; for(i=0;i10;i+) printf(“a%d=%d “,i,ai); ,运行结果: a0=1 a1=3 a2=7 a3=8 a4=12 a5=32 a

7、6=40 a7=26 a8=9 a9=15,15,6.1.3 一维数组的应用举例,/*example6-3*/ #include void main() int i; float a5; for(i=0;i=0;i-) printf(“a%d=%.2f “,i,ai); ,运行结果: 请输入第1个数组元素3 请输入第2个数组元素5 请输入第3个数组元素8 请输入第4个数组元素9 请输入第5个数组元素1 正序输出数组如下: a0=3.00 a1=5.00 a2=8.00 a3=9.00 a4=1.00 逆序输出数组如下: a4=1.00 a3=9.00 a2=8.00 a1=5.00 a0=3.

8、00,16,6.1.3 一维数组的应用举例,/*example6-4*/ #include void main() int i,j,t,a5; printf(“请输入五个数:“); for(i=0;iaj+1) t=aj; aj=aj+1; aj+1=t; printf(“排序后五个数依次为:“); for(i=0;i5;i+) printf(“%3d“, ai); ,运行结果: 请输入五个数:3 7 4 2 1 输入的五个数依次为: 3 7 4 2 1 排序后五个数依次为: 1 2 3 4 7,掌握二维数组的定义、引用及赋值,在程序中熟练应用二维数组。,任务描述,任务2 认识二维数组,任务2

9、 认识二维数组,1二维数组的定义 有两个下标的数组,称为二维数组。二维数组定义的一般形式是: 类型说明符 数组名常量表达式1常量表达式2;,19,6.2.1 二维数组的定义和引用,二维数组在概念上是二维的,其下标在两个方向上变化,数组元素在数组中的位置也处于一个平面之中。但是,实际的硬件存储器是连续编址的,也就是说存储器单元是按一维线性排列的。在语言中,二维数组是按行排列的,即放完一行之后顺序放入第二行。数组a24存储时,先存放a0行,再存放a1行。每行中的四个元素也是依次存放。,其中:常量表达式1表示第一维下标的长度,常量表达式2表示第二维下标的长度。例如:int a24; 该语句定义了一个

10、数组名为a的两行四列的整型数组,数组的长度为8(即24),也就是说,该数组有8个数组元素,即: a00,a01,a02,a03 a10,a11,a12,a13,2二维数组元素的引用 二维数组元素的表示形式为: 数组名下标1下标2,20,6.2.1 二维数组的定义和引用,例如: 数组元素a12 表示a数组中行下标为1,列下标为2的元素。,注意事项,二维数组可以看做是由一维数组嵌套构成的。若把一维数组的每个元素看做是一个一维数组,就构成了二维数组。当然,前提是各元素类型必须相同。,二维数组元素的第一维、第二维下标都从0开始,最大分别为该数组定义时第一维下标长度减1和第二维下标长度减1。,二维数组元

11、素的下标有两个,且均在变化,故二维数组的使用通常与循环嵌套语句相结合。,6.2.1 二维数组的定义和引用,1用赋值语句给二维数组赋值 如以下源程序:,22,6.2.2 二维数组的赋值,#include void main() int a23, i,j; for(i=0;i=1;i+) for(j=0;j=2;j+) printf(“请输入矩阵第%d行第%d列的元素值:n“,i+1,j+1); scanf(“%d“, ,运行结果: 请输入矩阵第1行第1列的元素值:1 请输入矩阵第1行第2列的元素值:2 请输入矩阵第1行第3列的元素值:3 请输入矩阵第2行第1列的元素值:4 请输入矩阵第2行第2列

12、的元素值:5 请输入矩阵第2行第3列的元素值:6 该矩阵输出如下: 1 2 3 4 5 6,2二维数组的初始化 二维数组初始化就是在定义二维数组的同时给各数组元素赋初值。二维数组的初始化可以有以下几种方式: (1)按行分段赋值。 例如:int a23= 1,2,3,4,5,6 ; (2)按行连续赋值。 例如:int a23= 1,2,3,4,5,6; (3)可以只给部分元素赋初值,未赋初值的元素自动取0值。 例如:int a33=3,1,3;其各元素的值为: 3 0 0 1 0 0 3 0 0 (4)若给全部元素赋初值,则第一维的长度可以不给出。 例如:int a23=1,2,3,4,5,6;

13、 可写为:int a 3=1,2,3,4,5,6;,23,6.2.2 二维数组的赋值,24,6.2.3 二维数组的应用举例,/*example6-6*/ #include void main() int a44=1,2,3,4,3,4,5,6,4,5,6,7,6,7,8,9; int i,j,sum=0; printf(“该矩阵为:n“); for(i=0;i4;i+) for(j=0;j4;j+) printf(“%4d“, aij); printf(“n“); for(i=0;i4;i+) sum=sum+aii; printf(“该矩阵对角线和为:%dn“,sum); ,运行结果: 该矩

14、阵为: 1 2 3 4 3 4 5 6 4 5 6 7 6 7 8 9 该矩阵对角线和为:20,25,6.2.3 二维数组的应用举例,/*example6-7*/ #include void main() int a34=1,3,3,4,4,5,8,7,6,7,2,9; int i,j,b43; for(i=0;i3;i+) for(j=0;j4;j+) bji=aij; printf(“原矩阵为:n“); for(i=0;i3;i+) for(j=0;j4;j+) printf(“%3d“, aij); printf(“n“); printf(“转置矩阵为:n“); for(i=0;i4;i

15、+) for(j=0;j3;j+) printf(“%3d“, bij); printf(“n“); ,运行结果: 原矩阵为: 1 3 3 4 4 5 8 7 6 7 2 9 逆矩阵为: 1 4 6 3 5 7 3 8 2 4 7 9,掌握字符数组和字符串的使用,了解字符及字符串操作的常用函数,在程序中熟练应用字符数组和字符串。,任务描述,任务3 认识字符串与数组,任务3 认识字符串与数组,1用字符串对数组作初始化赋值 字符数组可以利用循环语句赋值,也可以在定义时初始化赋值。 例如:char a11= I, , a, m, , a, , b, o, y, ! ; 初始化时,初值个数应小于等于数组长度,否则按语法错误处理。当初值个数等于数组长度时,也可以省略长度

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号