5.1一维数组、查找及排序.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档