第5章 数组.ppt

上传人:豆**** 文档编号:50522092 上传时间:2022-10-15 格式:PPT 页数:107 大小:995.50KB
返回 下载 相关 举报
第5章 数组.ppt_第1页
第1页 / 共107页
第5章 数组.ppt_第2页
第2页 / 共107页
点击查看更多>>
资源描述

《第5章 数组.ppt》由会员分享,可在线阅读,更多相关《第5章 数组.ppt(107页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第5章章 数组数组第五章 数组数组是:数组是:一些具有相同类型的数据集合一些具有相同类型的数据集合 用于处理大量的同类型数据用于处理大量的同类型数据 属于构造类型数据结构属于构造类型数据结构10/15/20222程序设计基础(C语言)wh本章内容5.1 一维数组一维数组 5.2 二维数组二维数组5.3 字符型数组字符型数组5.4 使用数组的程序设计方法使用数组的程序设计方法 5.5 程序设计举例程序设计举例 小结小结10/15/20223程序设计基础(C语言)wh 5.1.1 一维数组的定义一维数组的定义格式:一维数组的定义格式:存储类型存储类型 类型说明符类型说明符 数组标识符数组标识符

2、常量表达式常量表达式 例如:例如:int a10;static char b20,c30;int a10;static char b20,c30;说明:说明:存储类型存储类型:说明数组元素存储的方式。可以是自动型:说明数组元素存储的方式。可以是自动型(auto)(auto)、静态型、静态型(static)(static)或外部型或外部型(extern)(extern)(参看第参看第6 6章章);类型说明符类型说明符:用来说明该数组应具有的数据结构类型,其用来说明该数组应具有的数据结构类型,其可以是简单类型、指针类型或结构、联合等构造类型;可以是简单类型、指针类型或结构、联合等构造类型;数组标识

3、符数组标识符:用来说明数组的名称,如上例中的:用来说明数组的名称,如上例中的a、b、c均为数组名均为数组名,定义数组名的规则与定义变量名相同;定义数组名的规则与定义变量名相同;常量表达式常量表达式:用来说明数组元素的个数,即数组的长度,:用来说明数组元素的个数,即数组的长度,其可以是正的整型常量、字符常量或有确定值的表达式。其其可以是正的整型常量、字符常量或有确定值的表达式。其中方括号不可省,也不能用圆括号代替。中方括号不可省,也不能用圆括号代替。10/15/20224程序设计基础(C语言)wh 注意注意:C C语言编译系统在处理该定义语句时,根据常量表语言编译系统在处理该定义语句时,根据常量

4、表 达式的值在内存中分配一块连续的存储空间,将数组元达式的值在内存中分配一块连续的存储空间,将数组元 素值按其下标值的顺序依次存放其中。素值按其下标值的顺序依次存放其中。数组元素的下标值由数组元素的下标值由0 0开始,如由开始,如由1010个元素组成的个元素组成的a a数组,数组,其下标值的顺序为:其下标值的顺序为:a0,a1,a2,a9a0,a1,a2,a9 注意:注意:该数组不存在数组元素该数组不存在数组元素a10a10,系统对越界无提示。,系统对越界无提示。数组名数组名表示数组存储区的表示数组存储区的首地址首地址,即数组第一个元素存放,即数组第一个元素存放 的地址。的地址。相同类型的数组

5、可在同一语句行中定义,数组之间用逗号相同类型的数组可在同一语句行中定义,数组之间用逗号 分隔符。分隔符。C C语言不允许定义动态数组,即数组的长度不能依赖运行语言不允许定义动态数组,即数组的长度不能依赖运行 过程中变化着的变量。如过程中变化着的变量。如:下面这样定义数组是不允许的。下面这样定义数组是不允许的。int i;int i;scanf(scanf(%d,&i);%d,&i);int datai;int datai;10/15/20225程序设计基础(C语言)wh5.1.1 一维数组的定义从数组的定义不难看出:从数组的定义不难看出:定义数组时必需给数组取一个名字,即数组的标识符名称;定义

6、数组时必需给数组取一个名字,即数组的标识符名称;要说明数组的数据类型,既确定类型说明符,表明数组的数要说明数组的数据类型,既确定类型说明符,表明数组的数 据性质;据性质;要说明数组的结构,既规定数组的维数和数组元素的个数;要说明数组的结构,既规定数组的维数和数组元素的个数;要确定数组的存储类别,它关系到数组所占存储位置的作用要确定数组的存储类别,它关系到数组所占存储位置的作用 域和生存期。域和生存期。这是定义数组的四个方面。有了数组,成批数据的处理就方这是定义数组的四个方面。有了数组,成批数据的处理就方便多了。便多了。10/15/20226程序设计基础(C语言)wh 5.1.2 一维数组元素的

7、引用注注:数组一经定义之后,数组元素就能够被引用。数组一经定义之后,数组元素就能够被引用。C C语言中规语言中规定,定,对数组的使用不能将数组作为整体引用,而只能通对数组的使用不能将数组作为整体引用,而只能通过逐个引用数组元素来实现过逐个引用数组元素来实现。这样,数组下标对数组的。这样,数组下标对数组的操作就相当重要了,利用数组下标的变化,就可达到对操作就相当重要了,利用数组下标的变化,就可达到对数组元素引用的目的。数组元素引用的目的。一维数组元素的表示形式:一维数组元素的表示形式:数组名数组名 下标表达式下标表达式 10/15/20227程序设计基础(C语言)wh5.1.2 一维数组元素的引

8、用下标表达式可以是整型常量、整型变量及其表达式。当下标表达式可以是整型常量、整型变量及其表达式。当数组的长度为数组的长度为n n时,下标表达式的取值范围为时,下标表达式的取值范围为0 0,1 1,2 2,n-1,n-1,也就是说数组元素的下标是从也就是说数组元素的下标是从0 0开始的。若数组开始的。若数组定义为定义为:int array10;int array10;表明表明arrayarray整型数组中总共有整型数组中总共有1010个元素,其中个元素,其中array0array0是是数组中第一个元素数组中第一个元素,array9,array9是数组中第十个元素。数组是数组中第十个元素。数组元素

9、元素array10array10不存在。不存在。10/15/20228程序设计基础(C语言)wh5.1.2 一维数组元素的引用在使用数组时这一点需要特别注意!数组一经定义后在使用数组时这一点需要特别注意!数组一经定义后,对对 各数组元素的操作如同对基本类型的变量操作一样。各数组元素的操作如同对基本类型的变量操作一样。例如:例如:array5=2000;/*array5=2000;/*对第六个元素赋值对第六个元素赋值*/*/scanf(%d,&a8);/*scanf(%d,&a8);/*对第九个元素输入数据对第九个元素输入数据*/*/printf(%d,a6);/*printf(%d,a6);/

10、*输出第七个元素数据输出第七个元素数据*/*/10/15/20229程序设计基础(C语言)wh5.1.2 一维数组元素的引用【例【例5_15_1】计算】计算fibonaccifibonacci数列的前数列的前1515个数。个数。fibonacci fibonacci数列具有以下特点:数列具有以下特点:它的第一和第二个数分别是它的第一和第二个数分别是0 0和和1 1,从第三个数开始每个数是他,从第三个数开始每个数是他前两个数之和,即:前两个数之和,即:0 1 1 2 3 5 8 13 21 34 0 1 1 2 3 5 8 13 21 34 程序如下:程序如下:/*c5_1.c*/*c5_1.c

11、*/#include#include stdio.hstdio.h void main()void main()int f15,i;int f15,i;f0=0;f0=0;f1=1;f1=1;printf(printf(%4d%4d%4d%4d,f0,f1);,f0,f1);for(i=2;i15;i+)for(i=2;i=0;j-)for(j=i-1;j=0;j-)printf(%c,transj);printf(%c,transj);printf(n);printf(n);程序运行情况:程序运行情况:Enter a decimal number:Enter a decimal number

12、:输入:输入:88 88 输出:输出:130 13010/15/202212程序设计基础(C语言)wh5.1.3 一维数组元素的初始化数组元素的初始化数组元素的初始化:在定义数组时为数组元素赋初值。在定义数组时为数组元素赋初值。好处:好处:在定义数组时初始化数组,可以使数组元素在在定义数组时初始化数组,可以使数组元素在 程序运行之前的编译阶段赋初值,从而省掉了程序运行之前的编译阶段赋初值,从而省掉了 运行时间。运行时间。在程序中的开始位置对数组元素赋初值的途径:在程序中的开始位置对数组元素赋初值的途径:(1)(1)用赋值语句;用赋值语句;(2)(2)用输入语句,这两种方式赋初值要花费运行时间用

13、输入语句,这两种方式赋初值要花费运行时间 10/15/202213程序设计基础(C语言)wh5.1.3 一维数组元素的初始化1.1.在程序中的开始位置对数组元素赋初值在程序中的开始位置对数组元素赋初值 用赋值语句用赋值语句”数组元素数组元素=常数常数;”;”或用或用scanfscanf函数赋初函数赋初#include stdio.h#include stdio.h void main()void main()int x5,y10;int x5,y10;float a10;float a10;char c10;char c10;for(i=0;i5;i+)for(i=0;i5;i+)xi=10;

14、xi=10;for(i=0;i10;i+)for(i=0;i10;i+)scanf(%d%f,&yi,&ai);scanf(%d%f,&yi,&ai);for(i=0;i10;i+)for(i=0;i10;i+)scanf(%c,&ci);scanf(%c,&ci);10/15/202214程序设计基础(C语言)wh5.1.3 一维数组元素的初始化 2.2.一维数组元素在定义数组时的初始化一维数组元素在定义数组时的初始化 格式:格式:存储类型存储类型 类型说明符类型说明符 数组标识符数组标识符 常量表达式常量表达式=常量表达式表常量表达式表;说明:说明:中各常量表达式是对应的数组元素初值中各常

15、量表达式是对应的数组元素初值,相互之间用相互之间用 逗号分隔。如:逗号分隔。如:static int a5=1,2,3,4,5;static int a5=1,2,3,4,5;作用:作用:a0=1,a1=2,a2=3,a3=4,a4=5a0=1,a1=2,a2=3,a3=4,a4=5。它等价于:。它等价于:static int a5;static int a5;a0=1;a1=2;a2=3;a3=4;a4=5;a0=1;a1=2;a2=3;a3=4;a4=5;10/15/202215程序设计基础(C语言)wh说明:说明:对数组元素赋初值时,可以不指定数组长度,其长度由常量对数组元素赋初值时,可

16、以不指定数组长度,其长度由常量 表达式表中初值的个数自动确定。如:表达式表中初值的个数自动确定。如:static int a=1,2,3,4,5;static int a=1,2,3,4,5;初值有初值有5 5个,故系统自动确定个,故系统自动确定a a数组的长度为数组的长度为5 5。不允许数组确定的元素个数少于初值个数。例如:不允许数组确定的元素个数少于初值个数。例如:static int a5=0,1,2,3,4,5,6;static int a5=0,1,2,3,4,5,6;系统将提示语法出错信息。系统将提示语法出错信息。当数组确定的元素个数多于初值个数时,只给部分数组元素当数组确定的元素

17、个数多于初值个数时,只给部分数组元素 赋初值,未赋值的元素为相应类型的缺省值,赋初值,未赋值的元素为相应类型的缺省值,C C语言规定语言规定intint 类型缺省值为整型数类型缺省值为整型数0 0,charchar类型缺省值为空格。如:类型缺省值为空格。如:static int a5=1,2,3;static int a5=1,2,3;其结果为:其结果为:a0=1,a1=2,a2=3,a3=0,a4=0a0=1,a1=2,a2=3,a3=0,a4=0注:对注:对staticstatic数组不赋初值,系统会自动对全部数组元素赋以数组不赋初值,系统会自动对全部数组元素赋以0 0 值。即:值。即:s

18、tatic int a5;static int a5;相当于相当于 static int a5=0,0,0,0,0,;static int a5=0,0,0,0,0,;10/15/202216程序设计基础(C语言)wh5.1.3 一维数组元素的初始化【例【例5_35_3】求一维数组中所有元素的平均值。】求一维数组中所有元素的平均值。程序如下:程序如下:/*c5_3.c*/*c5_3.c*/#include stdio.h#include stdio.h void main()void main()int i;int i;static int x=9,8,7,6,5,4,3,2;static i

19、nt x=9,8,7,6,5,4,3,2;float average=0;float average=0;for(i=0;i8;i+)for(i=0;i8;i+)average+=xi;average+=xi;average/=8;average/=8;printf(The average is:%f,average);printf(The average is:%f,average);程序运行结果:程序运行结果:屏幕显示屏幕显示 The average is:5.500000 The average is:5.50000010/15/202217程序设计基础(C语言)wh5.2 二维数组 一

20、维数组是个线性的数组,它仅有一个下标。一维数组是个线性的数组,它仅有一个下标。具有两个下标的数组称为二维数组。具有两个下标的数组称为二维数组。C C语言允许语言允许定义和引用任意维数的数组,其使用与二维数组定义和引用任意维数的数组,其使用与二维数组类似,但超过二维以上的数组在实际的程序设计类似,但超过二维以上的数组在实际的程序设计中使用较少。中使用较少。10/15/202218程序设计基础(C语言)wh5.2 二维数组 5.2.1 5.2.1 二维数组的定义二维数组的定义 5.2.2 5.2.2 二维数组的引用二维数组的引用 5.2.3 5.2.3 二维数组元素的初始化二维数组元素的初始化10

21、/15/202219程序设计基础(C语言)wh 5.2.1二维数组的定义 1.1.二维数组的定义形式二维数组的定义形式二维数组的定义格式:二维数组的定义格式:存储类型存储类型 类型说明符类型说明符 数组标识符数组标识符 常量表达式常量表达式11常量表达式常量表达式2;2;说明说明:常量表达式常量表达式1 1表示数组的行数表示数组的行数,常量表达式常量表达式2 2表示数组的列数;表示数组的列数;二维数组元素的行列下标值也是从二维数组元素的行列下标值也是从0 0开始的;开始的;二维数组每个元素都具有相同的数据类型;二维数组每个元素都具有相同的数据类型;二维数组占有连续的存储空间,各元素按行的顺序排

22、列;二维数组占有连续的存储空间,各元素按行的顺序排列;例如:例如:static int a23,b55;static int a23,b55;char c1010;char c1010;其中,其中,a,ba,b是静态是静态intint型二维数组,型二维数组,c c是是charchar型二维数组。以上数型二维数组。以上数组的定义包括了存储类型、数据类型、数组名及数组的大小等内组的定义包括了存储类型、数据类型、数组名及数组的大小等内容。上例中容。上例中a a数组有数组有23=623=6个元素,个元素,b b数组有数组有55=2555=25个元素,个元素,c c数数组有组有1010=1001010=

23、100个元素。个元素。10/15/202220程序设计基础(C语言)wh5.2.1二维数组的定义2.2.二维数组的存储顺序二维数组的存储顺序 C C语言中,数组是按照其元素下标的顺序依次存储在内存的连语言中,数组是按照其元素下标的顺序依次存储在内存的连续递增的空间中,即从第一个元素直至最后一个元素连续存储。续递增的空间中,即从第一个元素直至最后一个元素连续存储。二维数组的存储顺序是:先按顺序存储第一行中的各元素,再二维数组的存储顺序是:先按顺序存储第一行中的各元素,再按顺序存储第二行中的各元素。按顺序存储第二行中的各元素。例如,二维数组例如,二维数组a23a23各元素排列的顺序是:各元素排列的

24、顺序是:a00 a01 a02 a10 a11 a12a00 a01 a02 a10 a11 a12 不难看出,可将二维数组看作是一个特殊的一维数组,即不难看出,可将二维数组看作是一个特殊的一维数组,即a a数数组是含有组是含有a0a0、a1a1这两个元素的一维数组,而这两个元素的一维数组,而a0a0、a1a1又又可看成是各含三个元素的一维数组,可看成是各含三个元素的一维数组,a0a0、a1a1分别是这两个分别是这两个一维数组的数组名。有了二维数组的基础,三维数组的理解就一维数组的数组名。有了二维数组的基础,三维数组的理解就不困难了。不困难了。10/15/202221程序设计基础(C语言)wh

25、5.2.1二维数组的定义例如:例如:int a234;int a234;该数组各元素在内存中排列的顺序为:该数组各元素在内存中排列的顺序为:a000 a001 a002 a003 a000 a001 a002 a003 a010 a011 a012 a013 a010 a011 a012 a013 a020 a021 a022 a023 a020 a021 a022 a023 a100 a101 a102 a103 a100 a101 a102 a103 a110 a111 a112 a113 a110 a111 a112 a113 a120 a121 a122 a123 a120 a121

26、a122 a123 同理,同理,a a数组含有数组含有a0a0、a1 a1 这两个元素的二维数组,这两个元素的二维数组,a0 a0 数组含有数组含有a00a00、a01a01、a02 a02 这三个元素的一维数这三个元素的一维数组,组,a1 a1 数组含有数组含有a10a10、a11a11、a12 a12 这三个元素这三个元素的一维数组。每个一维数组含有的一维数组。每个一维数组含有4 4个数组元素。个数组元素。10/15/202222程序设计基础(C语言)wh 5.2.2 二维数组的引用二维数组的引用格式:二维数组的引用格式:数组名数组名 下标表达式下标表达式11下标表达式下标表达式2;2;说

27、明:说明:下标表达式可以是整型常量、整型变量及其表达式。下标表达式可以是整型常量、整型变量及其表达式。对基本数据类型的变量所能进行的各种操作,也都适对基本数据类型的变量所能进行的各种操作,也都适 合于同类型的二维数组元素。合于同类型的二维数组元素。例如:例如:static int a23,b55;static int a23,b55;char c1010;char c1010;a11=123;a11=123;b23=a11*3+a11/3;b23=a11*3+a11/3;c55=c55=hh;10/15/202223程序设计基础(C语言)wh5.2.2 二维数组的引用 通过通过”运算可得到二维

28、数组元素的地址。运算可得到二维数组元素的地址。如:如:a11a11元素的地址可表示为元素的地址可表示为a11a11。从键盘上为二维数组元素输入数据,一般需要使用双重循环。从键盘上为二维数组元素输入数据,一般需要使用双重循环。下面两语句分别以按行、列的方式从键盘上为数组的每个元下面两语句分别以按行、列的方式从键盘上为数组的每个元素输入数据:素输入数据:按行的方式输入按行的方式输入 按列的方式输入按列的方式输入 for(i=0;i2;i+)for(i=0;i3;i+)for(i=0;i2;i+)for(i=0;i3;i+)for(j=0;j3;j+)for(j=0;j2;j+)for(j=0;j3

29、;j+)for(j=0;j2;j+)scanf(scanf(%d%d,&aij);scanf(,&aij);scanf(%d%d,&aji);,&aji);10/15/202224程序设计基础(C语言)wh【例【例5_45_4】从键盘上为一个】从键盘上为一个5555整型数组赋值,找出其中的最小整型数组赋值,找出其中的最小值和最大值,并显示出来。程序如下:值和最大值,并显示出来。程序如下:/*c5_4.c*/*c5_4.c*/#include stdio.h#include stdio.h void main()void main()int a55;int a55;int j,i,min,max

30、;int j,i,min,max;for(i=0;i5;i+)for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,&aij);for(j=0;j5;j+)scanf(%d,&aij);min=a00;max=a00;min=a00;max=a00;for(i=0;i5;i+)for(i=0;i5;i+)for(j=0;j5;j+)for(j=0;jaij)min=aij;if(minaij)min=aij;if(maxaij)max=aij;if(maxaij)max=aij;printf(min=%d max=%d,min,max);printf(min=%d max=

31、%d,min,max);10/15/202225程序设计基础(C语言)wh 5.2.3 二维数组元素的初始化 像一维数组元素的初始化一样,二维数组在被定义时像一维数组元素的初始化一样,二维数组在被定义时或在程序中的开始位置也能为数组元素赋初值。或在程序中的开始位置也能为数组元素赋初值。1.1.二维数组元素的赋初值有以下几种方法:二维数组元素的赋初值有以下几种方法:在程序中的开始位置对数组元素赋初值在程序中的开始位置对数组元素赋初值 用赋值语句格式用赋值语句格式”数组元素数组元素=常数常数;”;”。用用scanfscanf函数赋初值。函数赋初值。10/15/202226程序设计基础(C语言)wh

32、 如:如:#include stdio.h#include stdio.h void main()void main()int x55;int x55;float y1010;float y1010;char a1070;char a1070;for(i=0;i5;i+)for(i=0;i5;i+)for(j=0;j5;j+)xij=1;for(j=0;j5;j+)xij=1;for(i=0;i10;i+)for(i=0;i10;i+)for(j=0;j10;j+)scanf(%f,&yij);for(j=0;j10;j+)scanf(%f,&yij);for(i=0;i10;i+)for(i

33、=0;i10;i+)scanf(%s,&ai);scanf(%s,&ai);10/15/202227程序设计基础(C语言)wh 5.2.3 二维数组元素的初始化2.2.二维数组元素在定义数组时的初始化二维数组元素在定义数组时的初始化格式:格式:存储类型存储类型 类型说明符类型说明符 数组标识符数组标识符 常量表达式常量表达式11常量表达式常量表达式2=2=常量表达式表常量表达式表;具体定义方式有:具体定义方式有:初值按行的顺序排列,每行都用一对花括号括起来,各行之间用初值按行的顺序排列,每行都用一对花括号括起来,各行之间用逗号隔开。如:逗号隔开。如:static int x32=1,2,3,4

34、,5,6;static int x32=1,2,3,4,5,6;说明:语句中第一对花括号内的各数据依次赋给第一行中的各元说明:语句中第一对花括号内的各数据依次赋给第一行中的各元 素,第二对花括号内的各数据依次赋给第二行中的各元素,素,第二对花括号内的各数据依次赋给第二行中的各元素,第三对花括号内的各数据依次赋给第三行中的各元素。每行第三对花括号内的各数据依次赋给第三行中的各元素。每行 元素所赋初值如下:元素所赋初值如下:x00=1x00=1、x01=2x01=2、x10=3x10=3、x11=4x11=4、x20=5x20=5、x21=6x21=610/15/202228程序设计基础(C语言)

35、wh5.2.3 二维数组元素的初始化 这种初始化方式,也可以只为每行中的部分元素赋初值。这种初始化方式,也可以只为每行中的部分元素赋初值。如:如:static int a32=1,3,5;static int a32=1,3,5;未赋值元素初值为未赋值元素初值为0 0。static int a34=,3,5;static int a34=,3,5;其中其中a10=3a10=3、a20=5a20=5,余下元素的初值将自动设置为,余下元素的初值将自动设置为0 0。可以像一维数组那样,将所有元素的初值写在一对花括号可以像一维数组那样,将所有元素的初值写在一对花括号内,编译系统将这些有序数据按数组元素

36、在内存中排列的顺序内,编译系统将这些有序数据按数组元素在内存中排列的顺序(按行按行)依次为各元素赋初值。依次为各元素赋初值。如:如:static int a23=1,2,3,4,5,6;static int a23=1,2,3,4,5,6;a a数组初始化后,每个数组元素分别被赋以如下初值:数组初始化后,每个数组元素分别被赋以如下初值:a00=1a00=1、a01=2a01=2、a02=3a02=3、a10=4a10=4、a11=5a11=5、a12=6a12=610/15/202229程序设计基础(C语言)wh5.2.3 二维数组元素的初始化 注意注意:C C语言允许在定义二维数组时不指定第

37、一维的长度(即行语言允许在定义二维数组时不指定第一维的长度(即行 数),但必须指定第二维的长度(即列数),由于第一数),但必须指定第二维的长度(即列数),由于第一 维的长度可以由系统根据常量表达式表中的初值个数来维的长度可以由系统根据常量表达式表中的初值个数来 确定,这样,在常量表达式表中必须要给出所有数组元确定,这样,在常量表达式表中必须要给出所有数组元 素的初值。如:素的初值。如:static int a 3=1,2,3,4,5,6;static int a 3=1,2,3,4,5,6;此时,编译系统会根据数组初值的个数来分配存储空间,由于此时,编译系统会根据数组初值的个数来分配存储空间,

38、由于a a数组共有数组共有6 6个初值。列数为个初值。列数为3 3,所以可确定第一维的长度为,所以可确定第一维的长度为2 2,即,即a a为为2323的整型数组。的整型数组。特别注意的是,在单纯定义二维数组时,所有维的长度都必须特别注意的是,在单纯定义二维数组时,所有维的长度都必须给出,不能省。给出,不能省。10/15/202230程序设计基础(C语言)wh5.2.3 二维数组元素的初始化【例【例5_55_5】从键盘为一个】从键盘为一个5555整型数组输入数据,并找出主对角整型数组输入数据,并找出主对角 线上元素的最大值及其所在的行号。线上元素的最大值及其所在的行号。程序如下:程序如下:/*c

39、5_5.c*/*c5_5.c*/#include stdio.h#include stdio.hvoid main()void main()int a55,i,j,max,row;int a55,i,j,max,row;for(i=0;i5;i+)for(i=0;i5;i+)for(j=0;j5;j+)for(j=0;j5;j+)scanf(%d,&aij);scanf(%d,&aij);max=a00;row=0;max=a00;row=0;for(i=1;i5;i+)for(i=1;i5;i+)if(maxaii)if(maxaii)max=aii;max=aii;row=i;row=i;

40、printf(max=%d,row=%d,mprintf(max=%d,row=%d,max,row);ax,row);10/15/202231程序设计基础(C语言)wh5.2.3 二维数组元素的初始化【例【例5_65_6】将一个二维数组行和列元素值互换】将一个二维数组行和列元素值互换,存到另一个存到另一个 二维数组中。二维数组中。1 2 3 1 4 1 2 3 1 4 a=b=2 5 a=b=2 5 4 5 6 3 6 4 5 6 3 6 10/15/202232程序设计基础(C语言)wh程序如下:程序如下:/*c5_6.c*/*c5_6.c*/#include stdio.h#includ

41、e stdio.hvoid main()void main()static int a23=1,2,3,4,5,6;static int a23=1,2,3,4,5,6;static int b32,j,i;static int b32,j,i;printf(array a:n);printf(array a:n);for(i=0;i=1;i+)for(i=0;i=1;i+)for(j=0;j=2;j+)for(j=0;j=2;j+)printf(%5d,aij);printf(%5d,aij);bji=aij;bji=aij;printf(n);printf(n);printf(array

42、b:n);printf(array b:n);for(i=0;i=2;i+)for(i=0;i=2;i+)for(j=0;j=1;j+)for(j=0;j=1;j+)printf(%5d,bij);printf(%5d,bij);printf(n);printf(n);运行结果:运行结果:array a:array a:1 2 3 1 2 3 4 5 6 4 5 6 array b:array b:1 41 42 5 2 5 3 63 610/15/202233程序设计基础(C语言)wh5.3 字符型数组 用来存放字符数据的数组称之为字符数组,其数据类用来存放字符数据的数组称之为字符数组,其数

43、据类型为型为charchar。同其它类型的数组一样,字符数组既可以是。同其它类型的数组一样,字符数组既可以是一维的,也可以是多维的。前已介绍一维的,也可以是多维的。前已介绍,char,char型变量只能型变量只能存放一个由单引号括起来的字符,同样,字符型数组中存放一个由单引号括起来的字符,同样,字符型数组中的每一个元素也只能存放一个字符型数据。的每一个元素也只能存放一个字符型数据。10/15/202234程序设计基础(C语言)wh5.3 字符型数组 5.3.15.3.1字符数组的定义字符数组的定义 5.3.2 5.3.2 字符数组的引用字符数组的引用 5.3.3 5.3.3字符数组的初始化字符

44、数组的初始化 5.3.4 5.3.4字符串及其结束标志字符串及其结束标志 5.3.5 5.3.5字符数组的输入输出字符数组的输入输出 5.3.6 5.3.6常用的字符串处理函数常用的字符串处理函数10/15/202235程序设计基础(C语言)wh5.3.1字符数组的定义 一维字符数组的定义格式:一维字符数组的定义格式:存储类型存储类型 char char 数组标识符数组标识符 常量表达式常量表达式;例如:例如:static char c10,p100;static char c10,p100;该语句定义了数组名为该语句定义了数组名为c c、p p的两个一维字符数组,前者共包含的两个一维字符数组

45、,前者共包含1010个元素,后者共包含个元素,后者共包含100100个元素,每个元素可存储一个字符。个元素,每个元素可存储一个字符。例如例如:c0=c0=a;c1=b;c2=c;c3=d;c4=e;a;c1=b;c2=c;c3=d;c4=e;c5=f;c6=g;c7=h;c8=i;c9=j;c5=f;c6=g;c7=h;c8=i;c9=j;10/15/202236程序设计基础(C语言)wh5.3.1字符数组的定义 二维字符数组的定义格式:二维字符数组的定义格式:存储类型存储类型charchar数组标识符数组标识符 常量表达式常量表达式11常量表达式常量表达式2;2;如:如:char str55

46、;char str55;该语句定义了数组名为该语句定义了数组名为strstr的二维字符数组,的二维字符数组,5 5行行5 5列,共有列,共有2525个元素,每个元素可存储一个字符。个元素,每个元素可存储一个字符。例如例如:str00=str00=a;str01=a;str02=a;str03=a;a;str01=a;str02=a;str03=a;str04=a;str10=b;str11=b;str12=b;str04=a;str10=b;str11=b;str12=b;str13=b;str14=b;str20=c;str21=c;str13=b;str14=b;str20=c;str21

47、=c;str22=c;str23=c;str24=c;str30=d;str22=c;str23=c;str24=c;str30=d;str31=d;str32=d;str33=d;str34=d;str31=d;str32=d;str33=d;str34=d;str40=e;str41=e;str42=e;str43=e;str40=e;str41=e;str42=e;str43=e;str44=e;str44=e;10/15/202237程序设计基础(C语言)wh5.3.1字符数组的定义 注意注意:由于字符型数组与整型数组可互相通用(在由于字符型数组与整型数组可互相通用(在ASCIIASC

48、II码的码的范围),故上述定义也可改为范围),故上述定义也可改为:int c10,p100;int c10,p100;int str55;int str55;10/15/202238程序设计基础(C语言)wh 5.3.2 字符数组的引用字符数组的引用格式:字符数组的引用格式:一维字符数组的引用格式:一维字符数组的引用格式:数组名数组名 下标表达式下标表达式 二维字符数组的引用格式:二维字符数组的引用格式:数组名数组名 下标表达式下标表达式11下标表达式下标表达式2210/15/202239程序设计基础(C语言)wh5.3.2 字符数组的引用 例如例如:#include”stdio.h”#inc

49、lude”stdio.h”void main()void main()int i;int i;char str15;char str15;str0=str0=I;str1=;str2=a;str3=m;I;str1=;str2=a;str3=m;str4=;str5=a;str6=;str7=s;str4=;str5=a;str6=;str7=s;str8=t;str9=u;str10=d;str11=e;str8=t;str9=u;str10=d;str11=e;str12=n;str13=t;str14=.;str12=n;str13=t;str14=.;for(i=0;i15;i+)fo

50、r(i=0;i15;i+)printf(%c,stri);printf(%c,stri);运行结果运行结果:I am a student.I am a student.10/15/202240程序设计基础(C语言)wh5.3.2 字符数组的引用例如例如:#include stdio.h#include stdio.h void main()void main()int i,j;int i,j;char ch35;char ch35;ch00=;ch01=;ch02=*;ch03=*;ch00=;ch01=;ch02=*;ch03=*;ch04=*;ch10=;ch11=*;ch12=*;ch0

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

当前位置:首页 > pptx模板 > 企业培训

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁