C语言高级数据结构之一维数组.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文档。上传文档
查看更多
C语言高级数据结构之一维数组.ppt

主讲老师:刘志强 第七讲 高级数据结构 ——一维数组 问 题 如何将读入的3个数按逆序输出? 如何将读入的20个数按逆序输出? 当需要存储并处理大量同类数据时,要借助于数组以方便编程。 有关数组的几个术语 数组:一组有序数据的集合称为数组。 数组名:数组名的命名规则与标识符的命名规则相同。 数组元素:数组中的每一个数据称为一个数组元素。数组元素用数组名和下标来表示。 下标:用来表示数组元素在数组中的排列顺序。 TC规定,下标必须从0开始。 数组的维数:表示一个数组元素所需要的下标的个数叫做数组的维数。 §7.1 一维数组 使用一个下标标识数组元素的数组叫作一维数组。 如:每个班的学生排成一队,只需要指出某个学生在队列中的编号,就可以确定这个学生。 1.一维数组的定义 格式: 类型名 数组名[常量表达式]; 2.一维数组元素的引用—下标法 3.一维数组的初始化 3.一维数组的初始化 4.遍历一维数组的元素 int a[10],i; for i 0;i 10;i++ a[i]; /*输出一维数组的元素*/ for i 0;i 10;i++ printf “%d ”,a[i] ; 例1 一维数组元素的逆序输出 例2 用数组求Fibonacci数列前20项项值 main int i; int f[20] 1,1 ; 课堂练习 写一main函数,在其中 定义一维数组a[10], 然后让用户输入10个数存放在数组a的各个元素中, 再求出该数组的最大元素及其下标,并将其输出在屏幕上。 求数组中的特殊值 输出数组中满足某个条件的值。 算法:遍历数组,对访问到的每个数组元素判断是否满足条件,是的话就输出。 伪代码: for i 0;i 数组长度;i++ if 数组元素满足条件 输出数组元素; 特例:求数组中的最值,如最大值,最小值。 算法一:冒泡法 算法二:选择法 求数组中的最大值—冒泡法 算法: 定义足够大小的数组a用于存储各个数值,设数组大小为n。 用循环结构对数组各元素赋值,根据题目要求用scanf或直接赋值 比较a[0]与a[1]的大小,若a[0]比a[1]大则交换两数; 比较a[1]与a[2]的大小,若a[1]比a[2]大则交换两数; 比较a[2]与a[3]的大小,若a[2]比a[3]大则交换两数; … 比较a[n-1]与a[n]的大小,若a[n-1]比a[n]大则交换两数; 经过以上步骤,a[n]存放的是最大值,以上步骤可用一个循环来实现。 根据题目要求输出结果。 求数组中的最大值—冒泡法 伪代码 main 定义数组a[数组大小],其他需要的变量; 用循环结构输入数组各元素的值 for i 0;i 数组大小-1;i++ if a[i] a[i+1] 交换a[i]和a[i+1]的值; 输出a[数组大小-1]的值 求数组中的最大值—选择法 算法: 定义足够大小的数组用于存储各个数值,根据需要定义记录最大值的变量如max,定义记录最大值所在元素的下标如n,定义其他需要的变量。 用循环结构对数组各元素赋值,根据题目要求用scanf或直接赋值 将max初值设置为a[0],n初值设为0,即假设a[0]是最大值; 用循环结构遍历整个数组,在每次循环中我们访问到数组中的一个元素时如a[i],比较该元素是否比max大,若是则更新max的值即令max a[i],n i;因此当循环结束时,即可确保max存放的是最大值,n存放的是最大值所在的元素下标。 根据题目要求输出结果。 求数组中的最大值—选择法 伪代码 main 定义数组a[数组大小],存储最大值的变量max,最大值下标index,其他需要的变量; 用循环结构输入数组各元素的值 将max初始化为第一个元素的值,index初始化为第一个元素的下标0 for i 0;i 数组大小;i++ if a[i]大于max 将a[i]的值赋给max;将i的值赋给index; 输出max和index的值 求数组的特殊值 问题描述:一个数组内的各个元素保存着不同的数值,要求将其中符合某种条件的数值找出来。 如找出数组元素的最大值,最小值,次大值,次小值等等。 算 法 描 述(以最大值为例) 定义足够大小的数组用于存储各个数值,根据需要定义记录最大值的变量如max,定义记录最大值所在元素的下标如n,定义其他需要的变量。 对数值各元素赋值,根据题目要求用scanf或直接赋值 将max初值设置为a[0],n初值设为0,即假设a[0]是最大值; 用循环结构遍历整个数组,在每次循环中我们访问到数组中的一个元素时如a[i],比较该元素是否比max大,若是则更新max的值即令max a[i],n i;因此当循环结束时,即可确保max存放的是最大值,n存放的是最大值所

文档评论(0)

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

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

1亿VIP精品文档

相关文档