高级语言程序设计_C语言(第六章 数组).pptVIP

高级语言程序设计_C语言(第六章 数组).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本次课的主要内容 6.1 一维数组√ 6.2 二维数组√ 6.3 字符数组与字符串 √ 6.4 程序举例 √ 如何实现三个数比较大小? 可采用相关排序算法,程序比较容易实现 思考: 假如需要实现四个数,或者更多的数比较大小?怎么进行程序设计呢? 迄今为止,我们使用的都是属于基本类型(整型、字符型、实型)的数据,C语言还提供了构造类型的数据,它们有:数组类型、结构体类型、共用体类型。构造类型数据是由基本类型数据按一定规则组成的,因此有的书称它们为“导出类型”。 本章只介绍数组。数组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来唯一地确定数组中的元素。有关数组的概念和其他高级语言中介绍的是相同的,不再赘述。 C语言的数据类型 6.1 一维数组 一维数组的定义 一维数组的定义方式为 类型说明符 数组名[常量表达式]; 例如:   int a[10]; 它表示数组名为a,此数组有10个元素。 需要注意的几点 1)常量表达式表示元素的个数,即数组长度。例如,在a[10]中,10表示a数组有10个元素,下标从0开始,这10个元素是,a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]。注意不能使用数组元素a[10]。 2)常量表达式中可以包括常量和符号常量,不能包含变量。也就是说,C不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的: int n; scanf(%d,n); int a[n]; 6.1.2 一维数组元素的引用 数组必须先定义,然后使用。 C语言规定只能逐个引用数组元素而不能一次引用整个数组。 数组元素的表示形式为 数组名[下标] 下标可以是整型常量或整型表达式。例如: a[0]=a[5]+a[7]-a[2*3] 6.1.3 一维数组的初始化 对数组元素的初始化可以用以下方法实现: (1) 在定义数组时对数组元素赋以初值。例如: int a[10]={0,1,2,3,4,5,6,7,8,9}; 将数组元素的初值依次放在一对花括弧内。经过上面的定义和初始化之后,a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,a[5]=5,a[6]=6,a[7]=7,a[8]=8,a[9]=9。 6.2 二维数组 二维数组的定义 二维数组的定义方式为 类型说明符 数组名[常量表达式][常量表达式] ; 例如:  例如:float a[3][4],b[5][10]; 定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。 C语言对二维数组采用这样的定义方式,使我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。 例如,可以把a看作是一个一维数组,它有3个元素:a[0]、a[1]、a[2],每个元素又是一个包含4个元素的一维数组。 二维数组的引用 二维数组的定义方式为 类型说明符 数组名[常量表达式][常量表达式] ; 例如:  例如:float a[3][4],b[5][10]; 定义a为3×4(3行4列)的数组,b为5×10(5行10列)的数组。 二维数组的初始化 (1) 分行给二维数组赋初值。如 int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 6.4 程序举例  定义一个数组a[10],实现a[0]~a[9]的值为0~9,然后逆序输出。 6.4 程序举例  3*4的矩阵,编程求出其中值最大的那个元素的值,以及其所在的行号和列号。 6.4 程序举例  输入n个整数,输出其升序排序的结果。 若有6个数。第一次将8和9对调,第二次将第2和第3个数(9和5)对调……如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到:最大的数9已“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已向上“浮起”一个位置。经第一轮(共5次)后,已得到最大的数。 然后进行第二轮比较,对余下的前面5个数按上法进行比较,经过4次比较,得到次大的数8。如此进行下去。可以推知,对6个数要比较5趟,才能使6个数按大小顺序排列。 如果有n个数,则要进行n-1轮比较。在第1轮比较中要进行n-1次两两比较,在第j轮比较中要进行n-j次两两比较。 伪代码描述算法如下 for(i=0;iN-1;i++) //10个元素循环9轮 { for(j=0;jN-i-1;j++) //每轮比较10-i-1次 { if(a[j+1]a[j]) //若后面的元素比前面元素小,则交换      { temp=a[j]; a[j]=a[j+1]; a[j

文档评论(0)

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

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

1亿VIP精品文档

相关文档