欢迎来到天天文库
浏览记录
ID:59208365
大小:308.50 KB
页数:58页
时间:2020-09-26
《第5章 批量处理-数组ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章批量数据处理—数组一维数组排序和查找二维数组字符串1一维数组编一程序输出某个班某次考试10名学生的最高分、最低分和平均分,并打印每个学生的成绩单。解决方案:可以定义十个float型的变量score1,…,score10,然后比较十个值,找出一个最大值。缺点:定义了十个变量。程序只能用顺序结构如果人数发生变化,程序就得重写2数组数组是保存一组同类元素的数据类型,它有两个特征:数组元素是有序的数组元素是同类的定义数组要定义三个基本内容:数组名字数组元素的类型数组的大小3数组的定义格式:类型数组名[元素个数];其中,元素
2、个数必须是常量。如:intintarray[10];但intn=10;intintarray[n];是错的常用的方法是将元素个数定义为一个常量。如:#defineNumOfElement10intintarray[NumOfElement];相当于intintarray[10];4初始化定义数组时可以对数组初始化floatx[5]={-1.1,0.2,33.0,4.4,5.05};初始化表的长度短于要被初始化的数组元素数目,那么剩余元素被初始化为0。带有初始化的数组可以不定义数组规模,编译器根据初值的个数决定数组的大小i
3、nta[]={1,2,3,4,5};则默认数组大小为5初始化表5数组元素数组元素的使用是通过数组名及元素的序号来指定,如intarray[2]。当数组的大小为n时,元素的序号为0–n-1。元素的序号称为下标。程序中,下标可为整数、整型变量或结果为整型的任意表达式。正是这一特性,使得数组的应用非常灵活。6数组在内存中定义数组就是定义了一块连续的空间,空间的大小等于元素数*每个元素所占的空间大小。数组元素按序存放在这块空间中。7为数组分配空间如:intintarray[5];占用了20个字节,因为每个整型数占四个字节。如给i
4、ntarray[3]赋值为3,如果这块空间的起始地址为100,那么在内存中的情况是:当你引用变量intarray[idx]时,系统计算它的地址100+idx*4,对该地址的内容进行操作。随机值随机值随机值3随机值1001031041071081111121151161198数组下标超界问题C/C++语言不检查数组下标的超界。如定义数组intintarray[10];合法的下标范围是0–9,但如果你引用intarray[10],系统不会报错。如数组intarray的起始地址是1000,当引用intarray[10]时,系统
5、对1040号内存进行操作。而1040可能是另一个变量的地址解决方法:由程序员自己控制。在对下标变量进行操作前,先检查下标的合法性。9数组的操作数组的操作主要是数组元素的操作。不能直接对数组名进行赋值。如:intarray=30是错的。事实上,数组名中存放的是该数组的起始地址。eg.数组的输入输出intmain(){intintarray[10],idx;for(idx=0;idx<=9;++idx)cin>>intarray[idx];cout<6、array[idx];}10数组应用例5.2编写一个程序,统计某个班某次考试中的最高分、最低分和平均分,并为每个学生打印一张成绩单,其中包括该学生的编号、该学生的成绩、班级最高分、最低分和平均分。解决方法:关键在于必须把每个学生的成绩保存起来,可以用一个一维整型数组来实现。班级人数不定,数组大小如何确定?最大值5011第5章批量数据处理—数组一维数组排序和查找二维数组字符串12排序和查找顺序查找二分查找选择排序法气泡排序法13顺序查找被查找的数存放在一个数组中从数组的第一个元素开始,依次往下比较,直到找到要找的元素为止。7、如在一整数数组中查找元素x的存储位置。例5-314排序与查找顺序查找二分查找选择排序法气泡排序法15二分查找数组元素已按某一顺序排序,如数字的大小顺序、字母的字母序等。以下讨论中都假设是按升序排序。过程:设定查找范围的上下界:lh,rh找出中间元素的位置:mid=(lh+rh)/2比较中间元素与欲查找的元素key。如key等于中间元素,则mid就是要查找的元素的位置;如key>中间元素,则从lh–mid的这些元素不可能是要查找的元素,修正查找范围为lh=mid+1到rh;如key<中间元素,则从mid-rh的这些元素不可8、能是要查找的元素,修正查找范围为lh到rh=mid-1;如lh>rh,则要查找的元素不存在,否则返回第二步。16二分查找程序intmain(){intlh,rh,mid,x;intarray[]={0,1,2,3,4,5,6,7,8,9};cout<<"请输入要查找的数据:";cin>>x;lh=0;rh=9;whi
6、array[idx];}10数组应用例5.2编写一个程序,统计某个班某次考试中的最高分、最低分和平均分,并为每个学生打印一张成绩单,其中包括该学生的编号、该学生的成绩、班级最高分、最低分和平均分。解决方法:关键在于必须把每个学生的成绩保存起来,可以用一个一维整型数组来实现。班级人数不定,数组大小如何确定?最大值5011第5章批量数据处理—数组一维数组排序和查找二维数组字符串12排序和查找顺序查找二分查找选择排序法气泡排序法13顺序查找被查找的数存放在一个数组中从数组的第一个元素开始,依次往下比较,直到找到要找的元素为止。
7、如在一整数数组中查找元素x的存储位置。例5-314排序与查找顺序查找二分查找选择排序法气泡排序法15二分查找数组元素已按某一顺序排序,如数字的大小顺序、字母的字母序等。以下讨论中都假设是按升序排序。过程:设定查找范围的上下界:lh,rh找出中间元素的位置:mid=(lh+rh)/2比较中间元素与欲查找的元素key。如key等于中间元素,则mid就是要查找的元素的位置;如key>中间元素,则从lh–mid的这些元素不可能是要查找的元素,修正查找范围为lh=mid+1到rh;如key<中间元素,则从mid-rh的这些元素不可
8、能是要查找的元素,修正查找范围为lh到rh=mid-1;如lh>rh,则要查找的元素不存在,否则返回第二步。16二分查找程序intmain(){intlh,rh,mid,x;intarray[]={0,1,2,3,4,5,6,7,8,9};cout<<"请输入要查找的数据:";cin>>x;lh=0;rh=9;whi
此文档下载收益归作者所有