网站大量收购独家精品文档,联系QQ:2885784924

第05章:数组C语言程序设计课件和中南大学出版社教材相配套.pptVIP

第05章:数组C语言程序设计课件和中南大学出版社教材相配套.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第05章:数组C语言程序设计课件和中南大学出版社教材相配套

C语言程序设计 第5章 数组 5.1 一维数组 5.2 二维数组与多维数组 5.3 字符与数组 什么是数组? 数组:数组是一组有序数据的集合,数组中每一个元素的类型相同。用数组名和下标来唯一确定数组中的元素。 5.1一维数组 5.1.1一维数组的声明 5.1.2一维数组元素的引用 5.1.3一维数组的赋值 5.1.4一维数组越界检查 5.1.5一维数组的应用举例 5.1.1一维数组的声明 定义方式: 类型说明符 数组名[下标常量表达式] 例、 int a[10] 定义一个数组,数组名a,有10个元素,每个元素的类型均为int。 这10个元素分别是:a[0]、a[1]、a[2]、a[3]、a[4]、....、a[8]、a[9]。 注意: (1)C语言中,数组下标从0开始. (2)C语言不允许对数组的大小做动态定义,如: int n; scanf(%d,n); int a[n]; 因为,在编译时,C编译器根据已知数组大小分配内存。 例5.1源程序 5.1.2 一维数组元素的引用 C语言规定,不能引用整个数组,只能逐个引用元素,元素引用方式: 数组名[下标] 例、 a[0] = a[5] + a[7] - a[2*3] 5.1.2一维数组元素的引用 使数组元素a[0]~a[9]的值为0~9,然后逆序输出。 main () { int i,a[10]; for (i=0;i=9;i++) a[i] = i; for(i=9;i=0; i--) printf(“%d ”,a[i]); } 运行输出: 9 8 7 6 5 4 3 2 1 0 5.1.3 一维数组的赋值 初始化:在定义时指定初始值,编译器把初值赋给数组变量。 赋值:使用赋值语句,在程序运行时把值赋给数组变量,如a[0] = 2。 1、一般初始化,例、 static int a[10] = { 0,1,2,3,4,5,6,7,8,9}; int array[10] = {1,2,3,4,5,6,7,8,9,10}; 2、部分元素初始化,例、 static int a[10] = {0,1,2,3,4}; 仅前5个元素赋初值,后5个元素未指顶初值。 3、全部元素均初始化为0,不允许简写。 static int a[10] = {0,0,0,0,0,0,0,0,0,0}; 不能简写为: static int a[10] = {0*10}; 5.1.3 一维数组的赋值 注意:当程序不给数组指定初始值时,编译器作如下处理: (1)编译器自动把静态数组的各元素初始化为0。 (2)编译器不为动态数组自动指定初始值。 4、如果全部元素均指定初值,定义中可以省略元素的个数,例、 static int a[5] = {1,2,3,4,5}; 可以写为: static int a[ ] = {1,2,3,4,5}; 例5.2 求10个元素的最大值 5.1.4一维数组越界检查 C语言并不检验数组边界 在程序中最好还是加上数组越界检查程序代码 5.1.5 一维数组程序举例 用数组来处理Fibonicci数列的前20项。 F1 = 1 n = 1 F2 = 1 n = 2 Fn = Fn-1 + Fn-2 n ≥ 3 程序: main () { int i; static int f[20] = {1,1}; /* f1、f2已知 */ for(i=2; i20; i++) f[i] = f[i-1] + f[i-2]; for(i=0; i20; i++) { if (i%5 == 0) printf(\n); printf(%12d,f[i]); } } 例5.3源程序 5.1.5 一维数组程序举例 [例5.4] 输入10个数,用“冒泡法”对10个数排序(由小到大)。 “冒泡法”算法:以六个数9、8、5、4、2、0为例。 第1趟比较(图5-1) 第2趟比较(图5-2) 第1趟比较后,剩5个数未排好序; 两两比较5次 第2趟比较后,剩4个数未排好序; 两两比较4次 第3趟比较后,剩3个数未排好序; 两两比较3次 第4趟比较后,剩2个数未排好序; 两两比较2次 第5趟比较后,全部排好序; 两两比较1次 算法结论:对于n个数的排序,需进行n-1趟比较,第j趟比较需进行n-j次两两比较。 5.1.5 一维数组程序举例 图5-1 图5-2 5.1.5 一维数组程序举例 程序流程图:(用两层嵌套循环实现 例程5.4 例程5.5输入若干个

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档