版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 数组数组 数组是多个同一类型数据的有序集和。一维数组和字数组是多个同一类型数据的有序集和。一维数组和字符数组是本章的一个重点。每类数组要着重掌握其定义、符数组是本章的一个重点。每类数组要着重掌握其定义、初始化和引用等。初始化和引用等。 一维数组一维数组 二维数组二维数组 字符数组字符数组 程序示例程序示例数组的引入数组的引入引例引例 输入输入5个学生某门课的成绩,要求按与输入次序相反的个学生某门课的成绩,要求按与输入次序相反的顺序输出。顺序输出。一维数组一维数组 一维数组的定义和引用一维数组的定义和引用 示例示例 定义方式:定义方式: 类型标识符类型标识符 数组名数组名 常量表达
2、式常量表达式 ;例如:例如:float score5float score5; int a5int a5;注意:注意:(1 1)常量表达式必须是正的整型常量表达式。)常量表达式必须是正的整型常量表达式。(2 2)相同类型的数组、变量可以在一个类型说明符下一起说明。)相同类型的数组、变量可以在一个类型说明符下一起说明。 如:如: int iint i,j j,a5a5;(3 3)C C语言不允许定义动态数组语言不允许定义动态数组( (数组大小不依赖程序运行过程中变量的数组大小不依赖程序运行过程中变量的值值) )。因为系统是在编译阶段为数组开辟单元的。例:。因为系统是在编译阶段为数组开辟单元的。例
3、:表明数组中每个数表明数组中每个数据(称为数组元素)据(称为数组元素)所具有的数据类型。所具有的数据类型。说明说明一维数组一维数组 一维数组的定义和引用一维数组的定义和引用 示例示例 定义方式:定义方式: 类型标识符类型标识符 数组名数组名 常量表达式常量表达式 ;例如:例如:float score5float score5; int a5int a5;注意:注意:(1 1)常量表达式必须是正的整型常量表达式。)常量表达式必须是正的整型常量表达式。(2 2)相同类型的数组、变量可以在一个类型说明符下一起说明。)相同类型的数组、变量可以在一个类型说明符下一起说明。 如:如: int iint i
4、,j j,a5a5;(3 3)C C语言不允许定义动态数组语言不允许定义动态数组( (数组大小不依赖程序运行过程中变量的数组大小不依赖程序运行过程中变量的值值) )。因为系统是在编译阶段为数组开辟单元的。例:。因为系统是在编译阶段为数组开辟单元的。例:起名规则和变量名起名规则和变量名相同,遵循标识符相同,遵循标识符定义规则。定义规则。说明说明一维数组一维数组 一维数组的定义和引用一维数组的定义和引用 示例示例 定义方式:定义方式: 类型标识符类型标识符 数组名数组名 常量表达式常量表达式 ;例如:例如:float score5float score5; int a5int a5;注意:注意:(
5、1 1)常量表达式必须是正的整型常量表达式。)常量表达式必须是正的整型常量表达式。(2 2)相同类型的数组、变量可以在一个类型说明符下一起说明。)相同类型的数组、变量可以在一个类型说明符下一起说明。 如:如: int iint i,j j,a5a5;(3 3)C C语言不允许定义动态数组语言不允许定义动态数组( (数组大小不依赖程序运行过程中变量的数组大小不依赖程序运行过程中变量的值值) )。因为系统是在编译阶段为数组开辟单元的。例:。因为系统是在编译阶段为数组开辟单元的。例:数组的额定长度,数组的额定长度,即数组中所包含的即数组中所包含的元素个数。元素个数。说明说明一维数组一维数组 一维数组
6、的定义和引用一维数组的定义和引用 示例示例 定义方式:定义方式: 类型标识符类型标识符 数组名数组名 常量表达式常量表达式 ;例如:例如:float score5float score5; int a5int a5;注意:注意:(1 1)常量表达式必须是正的整型常量表达式。)常量表达式必须是正的整型常量表达式。(2 2)相同类型的数组、变量可以在一个类型说明符下一起说明。)相同类型的数组、变量可以在一个类型说明符下一起说明。 如:如: int iint i,j j,a5a5;(3 3)C C语言不允许定义动态数组语言不允许定义动态数组( (数组大小不依赖程序运行过程中变量的数组大小不依赖程序运
7、行过程中变量的值值) )。因为系统是在编译阶段为数组开辟单元的。例:。因为系统是在编译阶段为数组开辟单元的。例: 数组的额定长度,数组的额定长度,即数组中所包含的即数组中所包含的元素个数。元素个数。说明说明一维数组一维数组数组元素的引用方式数组元素的引用方式 数组名数组名 下标表达式下标表达式 例如:例如:score1score1,a0a0,a4a4一维数组的存储一维数组的存储 一维数组元素是按下标递增的顺序连续存放的,一维数组元素是按下标递增的顺序连续存放的,即数组占有连续的存储空间。如数组即数组占有连续的存储空间。如数组s在内存中的存储在内存中的存储顺序如图所示:顺序如图所示: s4s3s
8、2s1s043210 数组的首地址,用数组名数组的首地址,用数组名s表示表示下标的范围:下标的范围:04一维数组的定义和引用示例一维数组的定义和引用示例例例1、输入、输入5个学生某门课程的成绩,要求按与输入次序相反个学生某门课程的成绩,要求按与输入次序相反的顺序输出。的顺序输出。main() int i; int score5; printf(Enter five score: ); 运行结果: for(i=0; i=0; i-) reverse order are: printf(%d, scorei); 65 86 92 74 70 printf(n);一维数组(续)一维数组(续) 一位数
9、组的初始化一位数组的初始化 示例示例1.1.在定义数组时对数组元素赋以初值,如:在定义数组时对数组元素赋以初值,如: int s5=78, 87, 77, 91, 60;int s5=78, 87, 77, 91, 60;2.2.只给一部分元素赋值(只赋给数组的前几个元素,后几个元素的值为只给一部分元素赋值(只赋给数组的前几个元素,后几个元素的值为0 0)。)。如:如: int s5=78, 87, 77;int s5=78, 87, 77;3.3.若对全部数组元素赋初值时,可以不指定数组长度。若对全部数组元素赋初值时,可以不指定数组长度。 如:如:int s5=1, 2, 3, 4, 5;i
10、nt s5=1, 2, 3, 4, 5; 可以写成:可以写成: int s =1, 2, 3, 4, 5;int s =1, 2, 3, 4, 5;一维数组元素初始化示例一维数组元素初始化示例例例2 2、从键盘输入、从键盘输入1515个整数,并检查整数个整数,并检查整数1010是否包含在这些数据中,若是的是否包含在这些数据中,若是的话,它是第几个被输入的。话,它是第几个被输入的。main()main()int i,flag,data15int i,flag,data15; flag=0flag=0; printf(Input numbers: n)printf(Input numbers: n
11、); for(i=0for(i=0;i15i15;i+)i+) scanf(%d,&datai) scanf(%d,&datai); for(i=0for(i=0;i15i15;i+)i+) if(datai = 10) if(datai = 10) printf(10 is placed in the position %d.n, i+1) printf(10 is placed in the position %d.n, i+1); flag=1flag=1; / /* *标记标记1010在输入数据中在输入数据中* */ / break break; ifif(flag=0flag=0)p
12、rintf(10 is not in the numbers)printf(10 is not in the numbers); Input numbersInput numbers:12 13 23 89 77 90 56 1 6 11 5 9 10 17 6512 13 23 89 77 90 56 1 6 11 5 9 10 17 6510 is placed in the position 13. 10 is placed in the position 13. 二二 维维 数数 组组 二维数组的定义和引用二维数组的定义和引用定义形式:定义形式: 类型标识符类型标识符 数组名数组名 常
13、量表达式常量表达式常量表达式常量表达式 ; 例如,例如,int a32int a32;引用形式:引用形式:数组名数组名 下标表达式下标表达式下标表达式下标表达式 例如,例如,int a32int a32;数组元素的排列方式数组元素的排列方式数组数组a a是一个是一个3 32 2(3 3行行2 2列)的数组,共有列)的数组,共有6 6个个元素,每个元素都是元素,每个元素都是intint型。型。说明说明二二 维维 数数 组组数组数组a a共有共有6 6个元素,分个元素,分别为别为a00,a01,a00,a01,a10,a11,a10,a11,a20,a21a20,a21来表来表示。示。说明说明 二
14、维数组的定义和引用二维数组的定义和引用定义形式:定义形式: 类型标识符类型标识符 数组名数组名 常量表达式常量表达式常量表达式常量表达式 ; 例如,例如,int a32int a32;引用形式:引用形式:数组名数组名 下标表达式下标表达式下标表达式下标表达式 例如,例如,int a32int a32;数组元素的排列方式数组元素的排列方式二维数组(续)二维数组(续)二维数组的初始化二维数组的初始化 示例示例1.1.分行对二维数组赋初值。例如:分行对二维数组赋初值。例如: int a32=1,2,3,4,5,6int a32=1,2,3,4,5,6;2.2.只为数组的部分元素赋初值。例如:只为数组
15、的部分元素赋初值。例如: int a32=1,2,3,4int a32=1,2,3,4;3.3.也可以将所有数据写在一个花括号内,按数组的排列顺序对各元素赋也可以将所有数据写在一个花括号内,按数组的排列顺序对各元素赋初值。如:初值。如: int a32=1,2,3,4int a32=1,2,3,4;4.4.若对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,若对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但对第二维的长度不能省。如:但对第二维的长度不能省。如: int a 2=1,2,3,4,5,6int a 2=1,2,3,4,5,6;二维数组的初始化示例二维数组的初始化
16、示例例例3 3、从键盘为一个、从键盘为一个N NN N的整型数组输入数据,并将每一行的最小值显示出来。的整型数组输入数据,并将每一行的最小值显示出来。#define N#define N 6 6main()main()int aNN,mN,i,jint aNN,mN,i,j; printf(Input numbers:n) printf(Input numbers:n); for(i=0 for(i=0;iNiN;i+)i+) for(j=0 for(j=0;jNjN;j+)j+) scanf(%d,&aij) scanf(%d,&aij); for(i=0 for(i=0;iNiN;i+i+
17、) mi=ai0 mi=ai0; for(j=0 for(j=0;jNjaij) if(miaij) mi=aij mi=aij; printf(Min is:) printf(Min is:) ; for(j=0 for(j=0;jNj00说明说明:字符串字符串11字符串字符串2 2函数值函数值00说明:说明:字符串字符串11字符串字符串2 2说明说明(4 4)strcpystrcpy字符串拷贝函数字符串拷贝函数调用形式:调用形式:strcpystrcpy(字符数组(字符数组1 1,字符串,字符串2 2)或)或strcpystrcpy(字符数组(字符数组1 1,字符数组,字符数组2 2)功能
18、:将字符串拷贝到字符数组功能:将字符串拷贝到字符数组1 1中去。中去。例如:例如:strcpy(str1,str2)strcpy(str1,str2);(5 5)strcatstrcat字符串连接函数字符串连接函数调用形式:调用形式:strcatstrcat(字符数组(字符数组1 1,字符数组,字符数组2 2)功能:将字符数组功能:将字符数组2 2中字符串接到字符数组中字符串接到字符数组1 1中中字符串的后面,结果放在字符数组字符串的后面,结果放在字符数组1 1中,中,函数的返回值是字符数组函数的返回值是字符数组1 1的地址。的地址。字符数组字符数组1 1必须定义必须定义得足够大,以便容得足够
19、大,以便容纳被拷贝的字符串;纳被拷贝的字符串;也可以用也可以用strcpystrcpy函函数将字符串数将字符串2 2前若干前若干个字符拷贝到字符个字符拷贝到字符数组数组1 1中去。中去。说明说明字符数组字符数组1 1必须足必须足够大,以便容纳够大,以便容纳连接后的新字符连接后的新字符串。串。说明说明常用的字符串处理函数(二)常用的字符串处理函数(二)(6 6)strlenstrlen字符串长度测试函数字符串长度测试函数调用形式:调用形式:strlenstrlen(字符串)(字符串)功能:测试字符串的长度,函数的返回值为字符串的实际长度(不包功能:测试字符串的长度,函数的返回值为字符串的实际长度
20、(不包括括00)。)。(7 7)strlwrstrlwr字符串转换函数字符串转换函数调用形式调用形式: strlwt(: strlwt(字符串)字符串)功能:将字符串中大写字母转换成小写字母。功能:将字符串中大写字母转换成小写字母。(8 8)struptstrupt字符串转换函数字符串转换函数调用形式:调用形式:struptstrupt(字符串)(字符串)功能:将字符串中小写字母转换成大写字母。功能:将字符串中小写字母转换成大写字母。常用的字符串处理函数(三)常用的字符串处理函数(三)字符串处理函数示例字符串处理函数示例例例6 6、有三个字符串,要求找出其中最大者、有三个字符串,要求找出其中最大者。main()main()char string20char string20;char str320char str320;int iint i;for(i=0for(i=0;i3i0) strcpy(string,str0)if(strcmp(str0,str1)0) strcpy(string,str0);else strcpy(string,str1)else strcpy(string,str1);if(strcmp(str2if(strcmp(str2,string)0) strcpystring)0) strcpy(stringstring,s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考级乐理课件教学课件
- 幼儿乘机课件教学课件
- 2024年乙方接受房产抵债具体协议
- 2024供应链管理运输合同
- 2024年度专利申请成果转化许可合同
- 2024年度搬厂工程安全监督合同
- 2024年度市场营销策划执行合同
- 04版无人机研发与销售合同
- 2024年度文化艺术品收藏与展览合同
- 2024年度无人机采购与租赁合同
- 通江县房地产市场调研报告
- (完整word版)SOFA评分表
- 研究生学术英语写作教程Unit-7-Concluding-Research
- 矿业企业投资法律尽职调查清单
- GB_T 325.1-2018 包装容器钢桶 第1部分:通用技术要求(高清正版)
- 专利检索制度
- BAND-IN-A-BOX 2004 快速入门教程(上)
- 阴阳五行学说ppt课件
- 檐口检验批质量验收记录
- 鉴定附件1关于组织2018年甘肃省教育科学规划课题集中鉴定结题的通知
- 球磨机安装施工工法
评论
0/150
提交评论