第四章数组讲述.doc

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

第四章 数组 4.1 一维数组 『实例4.1』:输入50个学生的某门课程的成绩,打印出低于平均分的同学号数与成绩。 分析:在解决这个问题时,虽然可以通过读入一个数就累加一个数的办法来求学生的总分,进而求出平均分。但因为只有读入最后一个学生的分数以后才能求得平均分,且要打印出低于平均分的同学,故必须把50个学生的成绩都保留下来, 然后逐个和平均分比较,把高于平均分的成绩打印出来。如果,用简单变量a1,a2,…,a50存放这些数据,可想而知程序要很长且繁。那么有快捷的方法解决这些数据的存储问题呢? 一、一维数组的定义 类型说明符 数组名[常量表达式]; 如: int a[4]; // 表明a数组由4个int型元素组成,分别是a[0]、a[1]、a[2]、a[3] ; 『注释』:数组的下标序号从0开始。类型说明符是指数组元素的类型,如:int、bool、char。 例如:50位学生某门课程的成绩可以定义为: int student[50]; 『注释』数组student有50个元素,a[0]、a[1]、a[2]、a[3]、……a[49]分别存放第1位到第50位学生的成绩。 『关于下标』:必须是从0开始。 『实例4.2』:定义如下数组: 表示20种商品的价格; 表示30件邮件的安全邮递情况; 定义如下: float price[20]; bool mail [30]; 如下数组的定义是错误的: int n; int c[n]; 『注释』:C++不允许对数组的大小作动态的定义,即数组的大小不能是变量,必须是常量。 如果要根据不同的数值改变数组的大小,可用常量表达式。如: 二、一维数组的引用 一般情况下,我们都用下标来访问数组格式为:数组名[下标] 『说明』: 数组下标不允许超越所定义的下标下界和上界。 数组是一个整体,数组名是一个整体的标识,要对数组进行操作,必须对其元素操作。数组元素可以象同类型的普通变量那样作用。如:a[2]=34;是对数组a中第三个下标变量赋以34的值,cina[4];是从键盘读入一个数到数组a第5个元素中去。 我们现在来完成实例4.1。程序如下: 三、数组的基本操作 数组的的基本操作包括 四、一维数组应用示例 三、数组的基本操作 1、数组的读入 数组的读入分为两种。 第一种对数组中的一部分元素列举初值,未赋值的部分是0. 第二种是程序执行的时候读入。 2、数组的输出 3、数组的插入 例如:数组a中保存了1、2、4、5、7五个元素,现在要在a数组里面第三个位置插入数字8,怎么做呢? a数组初始状态如下: 1 2 4 5 7 1 2 4 5 7 要想在第三个位置插入数字8,只能从最后面开始,每一位向后移动一位,腾出一个空间放入数字8. 『核心程序如下』: 4、数组的删除 例如:数组a中保存了1、2、4、5、7五个元素,现在要在a数组里面删除第三个元素4,怎么做呢? 1 2 4 5 7 1 2 5 7 如上演示,要删除一个数,只要从这个数开始后面每一位向前移一位覆盖前面的数就可以了。 『代码如下』 5、数组的查找 因为数组是顺序存储,要在数组中查找一个数,只要把数组从头到尾扫描一遍就可以了。 四、数组的应用实例 『实例4.3』 输入10个数,要求程序按输入时的逆序把这10个数打印出来。也就是说,请你按输入相反顺序打印这10个数。 分析:我们可定义一个数组a用以存放输入的50个数, 然后将数组a内容逆序输出。 源程序如下: #includeiostream using namespace std; int main() { int a[10]; for(int i=0;i=9;i++) cina[i]; for(int i=9;i=0;i--) couta[i] ; return 0; } 『实例4.4』求S=x1*y1+x2*y2+x3*y3……x10*y10。其中x1到x10分别为1,3,5,7……17,19 y1到y10的值为21,22,23,……29,30. 分析:此题需要两个数组分别存储xi和yi的值。 源程序如下: #includeiostream using namespace std; int main() { int x[11],y[11],s=0; for(int i=1;i=10;i++) { x[i]=2*i-1; y[i]=20+i;

文档评论(0)

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

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

1亿VIP精品文档

相关文档