06数组(JHB).pptVIP

  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文档。上传文档
查看更多
06数组(JHB)

数组的概念 数组是程序设计语言的一个重要概念,是程序中最常见的数据结构之一。简单地讲,数组是一组数据的集合。比如,所有同学的考试成绩、为测量某钢球的直径用卡尺测得的一组数据、全国各主要城市的最高温度,等等,都是数组数据。当然,数组数据不仅仅限于数值型数据,也可以是其他类型的,全国各省会城市的名称可组成字符串型的数组,全班同学的生日可组成日期型的数组。如果把每个人的信息(包括姓名、年龄、性别等)看作一条数据记录,那么全班每个同学的个人信息可组成一个记录型的数组。 注:需要特别强调的是,C语言对数组元素的下标不进行越界检查。在Visual C++ 6.0中会产生程序运行错误,而在其他系统中可能不出错。 另外,C语言对数组的大小有限制吗?答案是不确定的。对于DOS等采用分段内存管理的操作系统,使用超过64KB的数组需要特殊的技巧。而对于Windows、Linux等,内存管理采用平板式结构,使用多大的数组仅受内存大小的限制。 注:计算机内存地址是线性编址的,程序中的一维数组的元素是线性排列的,与内存的线性特征是吻合的。但与矩阵对应的二维数组是平面结构的,一个元素可有上下左右4个相邻元素,与内存的线性特征不一致,因而需要进行转化 可以把二维数组看作是用一维数组定义的一维数组,即该一维数组的每个元素又是一个一维数组 注:定义二维数组时,如果根据初始值的情况可以确定数组的行数,则可以省略数组定义中的行数声明,但不可以省略列数说明,因为C编译器无法确定数组的列数到底是多少,也就无法为数组分配内存。 注:多维数组初始化时只可以省略第1维的长度。 注:查找(也叫搜索)是计算机数据处理的常用算法之一,也是日常生活最常见的问题。如果待查序列中数据的个数不是非常多,简单的顺序查找算法就可以解决问题。当数据个数非常大时,如何提高查找效率就成了算法的关键。 查找的结果只能是找到还是没找到,如果找到了,则该查找是成功的,否则就是失败的查找。对于成功的查找,只要找到一个就可以了,不必比较所有的数据。但对于失败的查找,需要确认每个数据都不是要找的,但是否需要比较所有数据呢?顺序查找方法需要,而折半法查找不需要,这也是折半法查找效率高的关键所在。 数组是程序设计语言的一个重要概念,是程序中最常见的数据结构之一。简单地讲,数组是一组数据的集合。比如,所有同学的考试成绩、为测量某钢球的直径用卡尺测得的一组数据、全国各主要城市的最高温度,等等,都是数组数据。当然,数组数据不仅仅限于数值型数据,也可以是其他类型的,全国各省会城市的名称可组成字符串型的数组,全班同学的生日可组成日期型的数组。如果把每个人的信息(包括姓名、年龄、性别等)看作一条数据记录,那么全班每个同学的个人信息可组成一个记录型的数组。 * 将数组和循环结构结合起来,可以大幅度地提高处理大规模数据的效率,可以说数组离不开循环控制 * * 初学者容易犯的错误是试图定义可变长度的数组 * 这些定义都是错误的 * 数组元素的下标的取值范围是0~n-1 * * 将程序按功能分块的方法是结构化程序设计所倡导的。如果把输入、求和过程组合成一个循环,减少了程序行数,但将程序块的功能复杂化了,降低了程序的可读性 * * 需要特别强调的是,C语言对数组元素的下标不进行越界检查。在Visual C++ 6.0中会产生程序运行错误,而在其他系统中可能不出错。 另外,C语言对数组的大小有限制吗?答案是不确定的。对于DOS等采用分段内存管理的操作系统,使用超过64KB的数组需要特殊的技巧。而对于Windows、Linux等,内存管理采用平板式结构,使用多大的数组仅受内存大小的限制。 * * * * * * * * * 这是一个典型算法,需要读者掌握。 * 定义二维数组时“行数”、“列数”必须分别放在独立的方括号中 * 计算机内存地址是线性编址的,程序中的一维数组的元素是线性排列的,与内存的线性特征是吻合的。但与矩阵对应的二维数组是平面结构的,一个元素可有上下左右4个相邻元素,与内存的线性特征不一致,因而需要进行转化 可以把二维数组看作是用一维数组定义的一维数组,即该一维数组的每个元素又是一个一维数组 * * 定义二维数组时,如果根据初始值的情况可以确定数组的行数,则可以省略数组定义中的行数声明,但不可以省略列数说明,因为C编译器无法确定数组的列数到底是多少,也就无法为数组分配内存。 注:多维数组初始化时只可以省略第1维的长度。 * 习惯上,一维数组打印在一行内,而二维数组打印成二维的矩阵形式。 * 二维数组的输入、输出记其他处理通常需要使用嵌套的循环结构 * max变量并不是必需的,可以直接用a[x][y]代替 * * 程序中调用time函数获取系统时间并转化为一个整数,用作srand函数的参数——随机数序列的种子,以获取

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档