第三版c语言ppt课件讲解第07章+数组

上传人:aa****6 文档编号:50937682 上传时间:2018-08-11 格式:PPT 页数:40 大小:407.50KB
返回 下载 相关 举报
第三版c语言ppt课件讲解第07章+数组_第1页
第1页 / 共40页
第三版c语言ppt课件讲解第07章+数组_第2页
第2页 / 共40页
第三版c语言ppt课件讲解第07章+数组_第3页
第3页 / 共40页
第三版c语言ppt课件讲解第07章+数组_第4页
第4页 / 共40页
第三版c语言ppt课件讲解第07章+数组_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《第三版c语言ppt课件讲解第07章+数组》由会员分享,可在线阅读,更多相关《第三版c语言ppt课件讲解第07章+数组(40页珍藏版)》请在金锄头文库上搜索。

1、第七章 数 组本章要点: 1.建立数组的概念; 2.掌握一维数组和多维数组的定义; 3.掌握数组的初始化和引用; 4.掌握字符串与字符数组. 5. 掌握用数组进行编程的技术。迄今为止,我们使用的都是属于基本 类型的数据(整型、字符型、实型) ,C还提供 了构造类型的数据,它们有数组类型、结构 体类型、共用体类型。构造类型数据是由基 本类型数据按一定的规则组成的,因此它们 又被称为“导出类型”。本章只介绍数组。数组的基本概念:1、数组:一组具有相同数据类型的数据的有序的集合。 2、数组元素:数组中的元素。数组中的每一个数组元素具 有相同的名称,不同的下标,可以作为单个变量使用。在定 义一个数组后

2、,在内存中使用一片连续的空间依次存放数组 的各个元素。3、数组的下标:是数组元素的位置的一个索引或指示。 4、数组的维数:数组元素下标的个数。根据数组的维数可 以将数组分为一维、二维、三维、多维数组。数组是同类型变量的集合,共用一个名字,用下标来区分 ; 每个变量称作数组元素;按下标递增顺序在内存中存放;使用几个下标区分变量,就称是几维数组。一维数组与数学中的数列对应,二维数组与矩阵对应。很 少使用三维及三维以上的数组。7.1 一维数组的定义和引用 7.1.1一维数组的定义n定义方式:类型说明符 数组名 常量表达式 例:int a10 它表示数组名为a,此数组有10个元素。n说明: (1)数组

3、名定义规则和变量名相同; (2)数组名的常量表达式用方括弧而不是圆括弧括 起来 (3)常量表达式表示元素的个数,即数组长度。例如:a10表示a数组共有10个元素,下标从0开始分别为:a0,a1,a2,a3,a4,a5,a6,a7,a8,a9注意:没有a10(4)常量表达式中可以包括常量和符号常量,不能 包含变量,即数组的大小不能依赖于程序过程中变量的值。例如:int n;scanf(“%d”, int an;是不合法的。 7.1.2 一维数组元素的引用C语言规定,只能逐个引用数组元素而不能一 次引用整个数组。 数组元素的表示形式为: 数组名下标 其中下标可以是整型常量或整型表达式。例如 : a

4、0=a5+a7-a2*3n例7.1 数组元素的引用 main ( ) int i, a10; for ( i = 0; i = 0; i-)printf(“%d”, ai); 本例使a0到a9的值为09,然后按逆序输出。7.1.3 一维数组的初始化1、在定义数组时对数组元素赋以初值 方法:将初值依次写在花括号 内。 例如:int a4=2,4,6,8其中:a0=2, a1=4, a2=6, a3=82、可以只给一部分元素赋值。 例如:int a10=0,1,2,3,4; 其中:a0=0, a1=1, a2=2, a3=3, a4=4,a5=0, a6=0, a7=0, a8=0, a9=0 3

5、、如果想使一个数组中全部元素值为0,可以写成: int a10=0, 0, 0, 0, 0, 0, 0, 0, 0, 0或:int a10=0不能写成: int a10=0*10 C语言不能给数组整体赋初值注意:定义成static数组,不赋初值,系统会自动将 全部元素赋以0值。(此处后面有介绍)4、在对全部数组元素赋初值时,可以不指定数组长度。 例如: int a5=0,1,2,3,4 可以写成: int a =0,1,2,3,4 但是如果被定义的数组长度与提供初值的个数不相同 时,则数组长度不能省略。 例如: int a10=0,1,2,3,4; 只初始化了前5个元素,后5个元素为0。7.1

6、.4 一维数组程序举例例7.2 用数组来处理求Fibonacci数列问题。 main( ) int i;int f20 = 1, 1;for( i = 2; i ai+1 ) t = ai; ai = ai+1; ai+1 = t; printf(“the sorted numbers:n”); for( i = 0; i ai+ 1 ai与 ai+1 交换 输出a0到a97.2 二维数组的定义和引用7.2.1 二维数组的定义n二维数组定义的一般形式: 类型说明符 数组名 常量表达式 常量表达式 例: float a34, b510; 此句定义了一个名为a的3行4列的实数数组和 一个名为b的5

7、行10列的实数的数组。 注意:不能写成:float a3,4, b5,10;n在C语言中,可以把二维数组看成特殊的一维数组,即把 把一行看成一个元素,这些特殊的元素组成以一个特殊的一 维数组。比如:我们可以把二维数组a34看成一个由a0, a1, a2元素组成的数组,每个元素又由四个 元素组成,例如a0由a00,a01, a02, a03组成。n二维数组的存放顺序: 在C语言中,二维数组中的元素是按行存放的 。 例如: a23的存放形式为 a12 a11 a10 a02 a01 a00二维数组是多维数组的基础。其它多维数组的定 义和元素存放形式类似二维数组。7.2.2 二维数组的引用n二维数组

8、的元素的表示形式为: 数组名 下标 下标 例如:a23表示的是a二维数组的第3行第4列的元 素。此处我们要特别注意下标不要超界。n注意: 1)下标可以是整型表达式,如a2-12*2-1;2)不能写成a2,3的形式;7.2.3 二维数组的初始化 (1)按行给二维数组赋初值。例如: int a34=1,2,3,4,5,6,7,8,9,10,11,12 ; (2)可以将所有数据写在一个花括号内,系统将按数组排列顺序对各元素赋初值。例如:int a34=1,2,3,4,5,6,7,8,9,10,11,12; (3)可以对部分元素赋初值。例如:int a34=1,5,9;它的作用是只对每行第一列赋初值,

9、其他元素自动 为0. 结果为:也可以对各行中的某一元素赋初值,其他元素自动为0 : int a34=1,0,6,0,0,11; 结果为:(4)如果对全部元素都赋初值,则定义数组时对第一维的 长度可以不指定,但第二维的长度不能省。例如: int a34=1,2,3,4,5,6,7,8,9,10,11,12; 可以写成:int a 4=1,2,3,4,5,6,7,8,9,10,11,12;例7.4 将二维数组 行和列元素互换,存到另一个二 维数组中。7.2.4 二维数组程序举例main( ) int a23=1,2,3,4,5,6;int b32, i, j;printf(“array a:n”)

10、;for ( i = 0; i max 假max= aij row=i colum=j输出:max和row,colummain ( ) int i, j, row = 0, colum = 0, max;int a34 = 1, 2, 3, 4, 9, 8, 7, 6, -10, 10, -5, 2 ;max = a00;for( i = 0; i max ) max = aij;row = i;colum = j;printf(“max=%d,row=%d,colum=%dn”,max,row,colum) ; 7.3 字符数组7.3.1 字符数组的定义n字符数组的定义类似前面的数组定义。例

11、如: char c4; c0=S; c1=U; c2=S; c3=E; 上句的作用为 :定义C为字符数组,包含4个元素。赋值后的状态为:在C语言中,字符型和整型是互相通用的,因 此上述定义句可以写为:int c4SUSEn也可以定义和初始化一个二维字符数组,方法类似前述。 例如: char diamond55= , , *, , *, , *, *, , , , * , , *, , *, , , *; 7.3.3 字符数组的引用 可以引用字符数组中的一个元素,得到一个字符。 例7.6;输出一个字符串main ( ) char c10I, , a, m, ,a, , b,o,y;int i;f

12、or( i = 0; i 字符串2,函数值为一正整数。(3)如果字符串1 main ( ) char string81; int i, num = 0, word = 0; char c; gets(string); for ( i = 0; ( c = stringi) != 0; i+) if (c = ) word = 0;else if (word = 0) word = 1;num+;printf(“There are %d words in the line.n”, num); 例7.9 有3个字符串,要求找出其中最大者。n今设一个1二维的字符数组str,大小为3X20,即有3行2

13、0列,每一行 可以容纳20个.可以把str0,str1,str2看作3个一维字符数组,可以把 它们如同一维数组那样进行处理,可以用gets函数分别读入。经过二次 比较,可以得到最大者,把它放入一维数组string中。 main( ) char string20; char str320; int i; for( i =0; i 0)strcpy(string, str0);else strcpy(string, str1); if ( strcmp(str2, string) 0 )strcpy(string, str2);printf(“n the largest string is: n %sn”, string);

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

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

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