第5章 数组 C++ 程序设计教学课件.ppt

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章数组C程序设计教学课件

第5章 数组 5.1 数组的概念 为什么引入数组? 例如:一个班有50名学生,这50名学生的成绩都是数值型的数据。要对这50名学生的成绩进行处理 ,变量如何定义? 解决方法一:定义50个s1、s2、s3…这样的变量 解决方法二: 我们可以把这些具有相同性质的数据组合在一起,作为一个整体参加运算,称为数组,用一个统一的名字如s来代表50个数据, s称为数组名。 数组中的每个数据称为数组元素。数组元素用数组名和元素在数组中的序号来确定,这个序号就是数组元素下标。如用s[0]代表第1个数据(第1个学生的成绩),s[1]代表第2个数据(第2个学生的成绩)。 引入数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地反映了数据间的联系。许多好的算法都与数组有关。熟练地利用数组,可以大大提高编程和解题的效率。 数组是有序数据的集合,包括以下几个含义: 一个数组是由若干个数据组成的; 这些数据是有次序的,用下标代表其次序; 用一个统一的名字来代表这批数据,这就是数组名。 要寻找一个数组中的某一个元素必须给出两个要素:数组名和下标。数组名和下标唯一地标识一个数组中的元素。 数组的存储 数组是有类型属性的。同一数组中的每一个元素都必须属于同一数据类型。一个数组在内存中占一片连续的存储单元。如果有一个整型数组a,假设数组的起始地址为2000,则该数组在内存中的存储情况如图5.1所示。 5.2 一维数组的定义和引用 5.2.1 定义一维数组 格式: 类型标识符 数组名[常量表达式]; 例如: int a[10]; 它表示数组名为a,此数组为整型,有10个整型元素。 说明: 数组名命名规则和变量名相同。 方括号中的常量表达式的值表示元素的个数,即数组长度。例如,在“int a[10];”中,10表示a数组有10个元素,下标从0开始,这10个元素是: a[0], a[1]… a[9] 。注意最后一个元素是a[9]而不是a[10] 。 常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。也就是说,C++不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。 5.2.2 引用一维数组的元素 数组必须先定义,然后使用。只能逐个引用数组元素的值而不能一次引用整个数组中的全部元素的值。 数组元素的表示形式:数组名[下标] 下标可以是整型常量或整型表达式(整型表达式中可以有变量)。例如: 注意:在c++中,默认数组元素的下标从0开始。 例5.1 数组元素的引用。 5.2.3 一维数组的初始化 初始化有多种方法: 在定义数组时对所有数组元素赋予初值。 int a[6]={6,4,7,1,9,5}; 可以只给一部分元素赋值。 int a[6]={6,4,7}; 结果:a[0]=6 a[1]=4 a[2]=7 其余元素均为0 如果想使一个数组中全部元素值为1,可以写成 int a[6]={1,1,1,1,1,1}; 不能写成 int a[6]={1*6}; 在对全部数组元素赋初值时,可以不指定数组长度。 例如: int a[5]={9,2,1,5,8}; 也可以写成 int a[ ]={9,2,1,5,8}; 如果未指定数组长度,则方括号内所提供初值的 个数即为数组长度。 5.2.4 一维数组程序举例 附加例:求数组元素之和。假设有10个元素(都为整数),都依赖于键盘的输入: 例 5.2 用数组来处理求Fibonacci数列问题。比如要用数组来求数列中的前20个数。 例5.3 编写程序,用起泡法对10个数排序(按由小到大顺序)。 可以推知,如果有n个数,则要进行n-1趟比较(和交换)。在第1趟中要进行n-1次两两比较,在第j趟中要进行n-j次两两比较。 5.3 二维数组的定义和引用 二维数组的引入 有些数据要依赖于两个因素才能惟一地确定,例如有3个学生,每个学生有4门课的成绩。那么一个成绩数据取决于两个数据:哪个学生(学生序号)、哪一门课(课程序号)。 定义二维数组:int a[3][4]; 要访问第3个学生的第4门课程成绩:a[2][3] (a[2][3]代表第3行第4列的元素,因为两个下标都从0开始) 5.3.1 定义二维数组 形式: 类型标识符 数组名[常量表达式][常量表达式] 例如:float a[3][4],b[5][10]; 注意不能写成:float a[3,4],b[5,10]; 我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。例如,可以把a看作是一个一维数组,它有3个元素:a[0],a[1],a[2],每个元素又是一个包

文档评论(0)

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

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

1亿VIP精品文档

相关文档