C++ _复杂数据和操作数组(修改版).ppt

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

引言 为什么会用到复杂数据类型 数组 结构体 枚举 指针 数组 当需要处理大量同一类型的数据时。 多数时候,对大批量同类型数据的处理,所用的方法都是相同的。 例如:某门课程,一个班级的40个学生成绩。 int score1, score2…….. int score[40]; 结构体(5.5.1) 当需要将一组相关的不同类型的数据作为一个整体来存储和处理时。 例如:学生信息 struct student{ int num; string name; char gender; … }; 枚举(不讲) 当需要模拟整数的某个有限子集的时候 例如:表示一星期的7天 int day;//用整型常量0,1,2,3,4,5,6表示星期天到星期六。但是int的范围不仅仅是0到6。 enum week{ Sun, Mon, Tue, Wen, Thu, Fri, Sat}; week day; 指针(难点)--存放地址的类型 1)当函数之间需要共享大量数据的时候,以参数合返回值在函数之间传递数据会造成很大的开销,传递地址比较高效。 2)对于处理大批量数据的程序,需要在运行时动态申请内存。 动态申请的内存空间与普通变量不同,不能命名,没有变量名,需要用内存地址去访问动态申请的内存空间。 关于本章例题 为什么要使用复杂数据类型,前面几张幻灯片讲了根本原因。 本章介绍数组与指针的用法。 本章所用的例题,有些题,也许你会觉得不用复杂数据类型也可以做出来,甚至可能不用复杂数据类型会更简单,这些做法仅仅是为了教大家学会使用复杂数据类型。 在自己写程序的时候,在没有题目特别规定的要求时,可自行选择合适的做法。 4.1 数组 为什么要使用数组? 什么是数组:数组是具有一定顺序关系的若干对象的集合体,组成数组的对象称为该数组的元素。 同一数组的各元素具有相同的类型。 数组可以由除了void型以外的任何一种类型构成。 问题的提出 统计某一地区每岁年龄的人数,以及总人数,假定不超过120岁。 用120个变量: int age1, age2, age3, …... age119, age120 程序 一维数组的定义 引用 统计各年龄段的人数 问题:统计某一地区每岁年龄的人数,以及总人数,假定不超过120岁。 定义其他类型数组 数组初始化 在定义数组时赋初值 数组在内存中的存放 一维数组的初始化小结 int arrayA[5]={1,2,3,4,5};//完全初始化 int arrayB[5]={1,2};//部分初始化,其余元素初始化为0 int arrayC[]={1,2,3,4,5};//完全初始化,不指定数组元素的个数,编译器自动计算 static int arrayD[5];//静态数组如果不初始化,所有元素都默认初始化为0 例4_1与4_2 通过这两个例子,学习了如何定义,初始化数组,以及如何输出数组元素。 补充:对数组的处理 从键盘读入数组元素的值 求数组元素的最大值 求和 。。。 数组的大小 在声明数组时,确定数组的大小是关键问题,需要在设计程序时能够正确地估计需要的数组大小。静态的声明方式,不允许用变量来指定数组的大小。大小声明后,是不可改变的。 但是在很多情况下,数组的大小是在运行时才能确定的,P59,后面会学习到动态内存分配,解决运行时确定数组大小的问题。 注意 C++不允许在数组上进行整体操作 不能整体赋值 不能比较 不能整体输入输出 赋值:for(i=0;i10;i++) y[i]=x[i]; 输入:for(i=0;i10;i++) cin y[i]; 输出:for(i=0;i10;i++) cout y[i]; 比较:if(x[i]=y[i])…… 一维数组应用 逆序 数的分解 求Fibonacci数列问题 排序 插入 查找(顺序、折半) 合并 多维数组 一维数组是最基本的数组,一个数组又可以作为元素去构成更复杂的数组,即“数组的数组”。 例如:表示矩阵或二维表格,要用二维数组。 问题 二维数组的定义 元素的引用 元素的引用 二维数组在内存中的存储 占据一片连续存储区 对例4_3的分析 通过本例,学习如何遍历二维数组(依次访问数组的所有元素) 双重循环 理解array,array[i],array[i][j] array:二维数组名/二维数组的首地址 array[i]:二维数组第i行的首地址 array[i][j]:二维数组第i行第j列的元素 对例4_3的改进 例4_3实现了二维数组元素的赋值以及输出。 在此二维数组array的基础上,可以做数据处理 矩阵转置 主对角

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档