- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.1 数组I 一维数组 查找与排序 数组与函数 数组的引入 目前已学的基本数据类型:char、int、float、double等 以上数据类型的限制:在任何一个时刻,这些数据类型的变量只能保存一个数值 数组:大小固定、含有相同数据类型元素的顺序集合,它们共用一个名称。数组是一个数值集合,单个的数值称为元素。 使用数组名表示元素的集合,通过指定序号来引用某项元素 数组属于构造数据类型。一个数组可以分解为多个数组元素。按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 例如: int a[10]; 说明整型数组a,有10个元素。 float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 一维数组 例如:用数组变量number表示含有5个数字的集合{35,40,20,57,19},可以声明为 一个一维数组 int number[5]; 计算机将为数组变量number保留5个存储空间,数组元素顺序存放在这个空间中。下标为0的元素排在最前面,每个元素占据的存储空间完全相同。 一维数组 数组元素也是一种变量,与其他变量的使用方法类似 int a = number[0] + 10; number[1] = number[0] * number[0]; number[2] = number[1] + number[0]; 数组元素的一般形式为: 数组名[下标] ,因此数组元素通常也称为下标变量。其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。 在C语言中只能逐个地使用数组元素, 而不能一次引用整个数组。 例如,输出有10 个元素的数组必须使用循环语句逐个输出各下标变量: for(i=0; i10; i++) printf(%d,a[i]); 而不能用一个语句输出整个数组,下面的写法是错误的: printf(%d,a); 数组操作离不开循环结构,数组与循环总是联系在一起的 数组类型说明应注意以下几点 1.数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 2.数组名不能与其它变量名相同,例如: void main() { int a; float a[10]; …… } 是错误的。 3.方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 4.不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。例如: #define FD 5 void main() { int a[3+2],b[7+FD]; …… } 是合法的。但是下述说明方式是错误的。 void main() { int n=5; int a[n]; …… } 5.允许在同一个类型说明中,说明多个数组和多个变量。 例如: int a,b,c,d,k1[10],k2[20]; 编译时的初始化 一维数组定义时可以用花括号对全部或前面一部分数组元素赋初值,叫做初始化。通过初始化也可以定义一维数组。 如果建立时没有进行初始化,其值是不确定的。 例: int a[6]={1,2,3,4,5,6}; int a[6]={1,2}; /*列表中的数值少于元素个数,剩余元素置零*/ int a[3]={1,2,3,4}; /* 编译错误,初始化数值多于数组大小 */ int a[]={1,2,3,4,5,6};/*数组大小省略,适用于对每个元素都初始化。即若数组元素的个数定义省略,则系统根据初值的个数来确定数组元素的个数*/ 如果对数组的引用超过了所声明的范围,不一定会产生错误,但是会导致不可预知的运行结果。 数组的大小必须是一个数字常量或符号常量 数组的初始化 运行时的初始化 for (i = 0; i 100; i++) {if ( i 50 ) sum[i] = 0.0; else sum[i] = 1.0;} 通常用于大数组的初始化 数组sum的前50个元素初始化为0,余下的初始化为1 数组的应用-查找 例:显示整型变量a、b和c中的最大值 main() { int a=35, b=40, c=20, d=-32768; if (a=d) d=a; if (b=d) d=b; if (c=d) d=c; printf(The maximum number is %d\n\n,d); } 三个数需要比较3次(最少2次),那么n个数字怎么办? 数组举例 例1:查找一列自然数的最大值 main( ) { int i, max = 0
您可能关注的文档
- 广域网协议封装及验证配置.doc
- 很全粤语字典.doc
- 幻灯片及超级链接.doc
- 幻灯片中超级链接.doc
- 04汇编语言和其程序设计.ppt
- 婚姻及家人关系(12秋).doc
- 04算法及基本数据结构.ppt
- 基本矩阵运算.doc
- 04文件及IO(一).ppt
- 基本数据结构与散列表.ppt
- 国开景区管理作业2试题及答案.pdf
- 国开景区管理作业1-4试题及答案.pdf
- 河南开放大学本科《地域文化(本)》作业练习1-3试题及答案.pdf
- 2024年大型游乐设施操作证考试题库及答案很全.pdf
- 2024年门座式起重机司机考试题库及答案.pdf
- 2022-2023学年河北省衡水市武强中学高二(下)期末数学试卷【答案版】.docx
- 2022-2023学年河北省保定市崇德实验中学高二(下)期末数学试卷【答案版】.docx
- 江西省2017年中小学教师招聘考试高中化学试卷及答案.docx
- 2024年河北省八年级中考生物真题(解析版).docx
- 2024年南阳市社会保险中心(唐河县企业养老保险分中心)(参公)一级科员招录1人《行政职业能力测验》高频考点、难点(答案详解版).docx
文档评论(0)