C语言入门学习C第7章-数组课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C语言入门学习C第7章-数组课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 入门 学习 数组 课件
- 资源描述:
-
1、 C语言为这些数据,提供了一种构造数据类型:语言为这些数据,提供了一种构造数据类型:数组。数组。所谓数组所谓数组就是一组具有相同数据类型的数据就是一组具有相同数据类型的数据的有序集合。的有序集合。数据的特点:1.具有相同的数据类型2.使用过程中需要保留原始数据1.1.一维数组的定义格式为一维数组的定义格式为:类型说明符类型说明符 数组名常量表达式;数组名常量表达式;例如:例如:int a10;它表示定义了一个整形数组,数组名为a,此数组有10个元素。7.1.17.1.1一维数组的定义一维数组的定义 数组名定名规则和变量名相同,遵循标识符定名规则。float a0;/*数组大小为数组大小为0 0
2、没有意义没有意义 */int k,ak;/*不能用变量说明数组大小不能用变量说明数组大小*/注意:注意:定义数组时用到的“数组名常量表达式”和引用数组元素时用到的“数组名下标”是有区别的。例如例如:int a10;下标为0,1,2,3,4,5,6,7,8,9 7.1.2 7.1.2一维数组元素的引用一维数组元素的引用1.1.数组元素的引用方式数组元素的引用方式数组名下标下标可以是整型常量或整型表达式。例如例如:a0=a2*3对数组元素初始化的实现方法:对数组元素初始化的实现方法:1.1.在定义数组时对数组元素赋以初值。在定义数组时对数组元素赋以初值。例如例如:int a:int a1010=0
3、,1,2,3,4,5,6,7,8,9;=0,1,2,3,4,5,6,7,8,9;将数组元素的初值依次放在一对花括弧内。经过上面的定义和初始化之后,a0=0,a1=1,a2=2,a3=3,a4=4,a5=5,a6=6,a7=7,a8=8,a9=9。7.1.37.1.3一维数组的初始化一维数组的初始化 3.3.如果想使一个数组中全部元素值为如果想使一个数组中全部元素值为0 0,可以写成,可以写成:int aint a1010=0;=0;2.2.可以只给一部分元素赋值。可以只给一部分元素赋值。例如例如:int a:int a1010=0=0,1 1,2 2,3 3,4;4;定义a数组有10个元素,但
4、花括弧内只提供5个初值,这表示只给前面5个元素赋初值,后5个元素值为0。4.4.在对全部数组元素赋初值时,由于数据的个数已在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。经确定,因此可以不指定数组长度。例如例如:int a:int a5 5=1=1,2 2,3 3,4 4,5;5;也可以写成也可以写成 int aint a=1=1,2 2,3 3,4 4,5;5;用数组来处理用数组来处理,求解求解Fibonacci数列。数列。Fibonacci数列公式:数列公式:已知已知:a a1 1=a=a2 2=1=1a an n=a=an-1n-1+a+an-2 n-2 即即:
5、1,1,2,3,5,8,13:1,1,2,3,5,8,137.1.47.1.4一维数组程序举例一维数组程序举例用起泡法对用起泡法对1010个数排序个数排序(由小到大由小到大)。第一趟比较 经过第一趟(共5次比较与交换)后,最大的数9已“沉底”。然后进行对余下的前面5个数第二趟比较,第二趟比较如果有n个数,则要进行n-1趟比较。在第1趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。文件命名重要性起泡排序程序命名为:起泡排序程序命名为:qipaopaixu.c流程图和程序参见书上内容输出数组中的最大值,文件名为输出数组中的最大值,文件名为zuidazhi.c第一步:定义一个数
6、组,并赋予相应的值第一步:定义一个数组,并赋予相应的值第二步:找出最大值第二步:找出最大值第三步:输出数组中的最大值找出最大值思想:找出最大值思想:第一个和第二个元素值比较,记住较大的元素值,刚才第一个和第二个元素值比较,记住较大的元素值,刚才比较得出的较大的元素值再和第三个元素值比较,记住两个比较得出的较大的元素值再和第三个元素值比较,记住两个数中的较大值,依此类推,直到最后一个元素。数中的较大值,依此类推,直到最后一个元素。数组中找出最大值元素的位置数组中找出最大值元素的位置命名为命名为zuidazhiweizhi.c找出最大值位置的思想:找出最大值位置的思想:第一个和第二个元素值比较,记
7、住较大的元素值位置,第一个和第二个元素值比较,记住较大的元素值位置,刚才比较得出的较大的元素值再和第三个元素值比较,记住两刚才比较得出的较大的元素值再和第三个元素值比较,记住两个数中的较大元素值位置,依此类推,直到最后一个元素。个数中的较大元素值位置,依此类推,直到最后一个元素。选择法排序的思想:选择法排序的思想:第一趟:找出数组中最大值和最后位置上的元素值交换第一趟:找出数组中最大值和最后位置上的元素值交换第二趟:最后元素值除外,剩余元素中找最大值和倒数第二第二趟:最后元素值除外,剩余元素中找最大值和倒数第二个位置上的元素值交换个位置上的元素值交换第三趟:最后第三趟:最后2个元素值除外,剩余
8、元素中找最大值和倒数个元素值除外,剩余元素中找最大值和倒数第三个位置上的值交换第三个位置上的值交换依此类推依此类推选择法对数组元素排序,文件名选择法对数组元素排序,文件名xuanzefapaixu.c思考:思考:如果仅知道最大值,然后和不同位置上的值交换,是否会造成如果仅知道最大值,然后和不同位置上的值交换,是否会造成数组元素值的丢失数组元素值的丢失查找一个数据值是否存在于数组中查找一个数据值是否存在于数组中方法二:折半查找 文件名zhebanchazhao.c方法一:顺序查找 文件名shunxuchazhao.c思考方法:首先,假设数组中元素是按升序排列,将数组中间位置的值与查找关键字比较,
9、如果两者相等,则查找成功;否则利用中间位置将数组分成前、后两个子数组部分,如果中间位置的值大于查找关键字,则在前面部分进一步查找,否则进一步在后面部分查找。重复以上过程,直到查找成功,或直到子数组部分不存在为止,此时查找不成功。目的:为了提高查找速度前提条件:数组元素已经排好序例:已知一个升序排列的数组有十个数据,输入一个数,查例:已知一个升序排列的数组有十个数据,输入一个数,查找它是否存在。若存在打印该数及其所在位置,否则,输出找它是否存在。若存在打印该数及其所在位置,否则,输出“no found!no found!”.假定:数组为假定:数组为a10,待查找的数为待查找的数为 x设三个位置指
10、针设三个位置指针 top(顶)(顶),bot(中)(中),mid(底)(底)使:使:假假。则。则 x 必落在必落在 mid1bot 范围内。范围内。2、否则,判断、否则,判断x a mid成立否。成立否。算法算法:80152130455065869598680012345789aiimidbottop1、若若x=a mid,则,则 已找到已找到真真。则。则 x 必落在必落在 topmid-1 范围内。范围内。重新设置位置指针:重新设置位置指针:bot=mid-1bot80152130455065869598重新设置位置指针:重新设置位置指针:top=mid+1 midbottop3、确定了新的
11、查找范围后,重复上述,直到、确定了新的查找范围后,重复上述,直到找到或退出循环。找到或退出循环。top在已排好序的含有在已排好序的含有n个元素的数组中插入一个数据个元素的数组中插入一个数据值,使得数组中元素依然有序排列,文件名为值,使得数组中元素依然有序排列,文件名为charu.c第二步:插入点位置后的所有元素值都往后移动一位第一步:首先确定数据插入到数组中的位置思想方法思想方法:第三步:插入相应的数据值删除数组中和关键字相同的元素值,文件名为删除数组中和关键字相同的元素值,文件名为shanchu.c思考:删除一个数据需要数据元素已经排好序吗?插入排序:将插入排序:将n个数据输入到数组中,输入
12、完成后个数据输入到数组中,输入完成后,数组中的元素有序排列。,数组中的元素有序排列。每输入一个数据到数组中,都实现一次数据的插入(前面已讲)。思想方法:习题习题7.5,将一个数组中的值按逆序存放。,将一个数组中的值按逆序存放。将第一个位置数据和最后一个位置的数据交换,第二个位置的数据和倒数第二个位置的数据交换,依此类推,直到数据的中间位置。思考方法:本题无需对数组中的元素排序。7.2.17.2.1二维数组的定义二维数组的定义二维数组定义的一般形式为二维数组定义的一般形式为类型说明符 数组名常量表达式常量表达式;例如:例如:定义a为34(3行4列)的数组,b为510(5行10列)的数组。如下:f
展开阅读全文