维数组及冒泡排序

维数组及冒泡排序

ID:37468745

大小:355.31 KB

页数:18页

时间:2019-05-12

维数组及冒泡排序_第1页
维数组及冒泡排序_第2页
维数组及冒泡排序_第3页
维数组及冒泡排序_第4页
维数组及冒泡排序_第5页
资源描述:

《维数组及冒泡排序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章数组5.1数组5.1.1一维数组1、数组概念的引入(必要性)如用以解决从键盘输入任意100个数,输出这些的半值这样的问题。概念:数组由若干个类型相同的元素组成,每个元素就是一个变量,每个数组都有一个名称,称为数组名。第5章数组2、一维数组的定义一维数组是指数组元素只有一个下标的数组。定义一维数组的一般格式如:类型名数组名[整型常量表达式],…如:inta[5];该语句(1)定义了一个名为a的一维数组。(2)方括号中的5规定该数组最多容纳5个元素。(3)类型名int规定了这5个元素均为整型变量。(4)C语言规定数组第一个元素的下标(数组下标的下界)为0;因此最后一个元素的下标(数

2、组下标的上界)为数组元素个数减1a[0]a[1]a[2]a[3]a[4]第5章数组3、一维数组元素的使用数组定义后,就可以在程序中使用数组元素。格式如下:数组名[下标表达式]如:inta[10];a[0]=0;a[1]=1;a[2]=a[0]+a[1];第5章数组使用数组元素应注意:(1)系统在内存中为数组分配一块连续的存储单元,最低的地址对应于第一个数组元素,最高的地址对应于最后一个数组元素。每个数组元素等同于一个变量。(2)C语言中,不能对一个数组整体赋值。如:inta[10],b[10],k;for(k=0;k<10;k++)scanf(“%d”,&a[k]);b=a;/*er

3、ror*/for(k=0;k<10;k++)b[k]=a[k];对数组元素输入值,并倒序输出voidmain(){inta[10],k;for(k=0;k<10;k++)scanf(“%d”,&a[k]);for(k=9;k>=0;k--)printf(“%3d”,a[k]);printf(“”);}第5章数组(3)在使用数组元素时,数组元素中的下标表达式的值必须是整型。下标表达式值的下限为0,值的上限为该数组元素的个数减1。使用数组时注意其下标不要越界。如果下标越界,程序无法得到正确的结果。第5章数组4、数组元素的初始化(1)定义数组时不对数组元素赋初值。a、动态数组未加说明定

4、义的数组均为动态数组,定义动态数组时不对元素赋初值,则数组元素的值为不确定值。第5章数组B、静态数组定义时加static说明。定义数组时不对元素赋初值,则所有元素初值为0。如:staticintb[10];这样,数组b中各元素(b[0]~b[9])值均为0。第5章数组2)定义数组时对元素赋初值。一般形式为:[static]类型名数组名[整型常量表达式]={常量1,常量2,…}例:inta[10]={1,2,3,4,5,6,7,8,9,10};该语句定义了一个动态数组,并对该动态数组进行了初始化。注意:1、所赋初值的类型必须与说明的类型一致。2、在指定初值时,第一个值赋给下标为0的元素

5、。3、不可能跳过前面的元素给后面的元素赋初值。第5章数组注意:1、如果初值的数据个数比数组元素少,则系统自动给后面的元素补赋初值0。2、如果初值的数据个数比数组元素多,则在编译时提示出错信息:toomanyinitializers.3、初始化时不指定数组长度。C语言中,可以在初始化时,不指定数组长度的个数。例:inta[]={1,2,3,4,5};这里,花括号里列出了5个初始化数据,它隐含地定义了该数组共有5个元素。等价于:inta[5]={1,2,3,4,5};6、一维数组应用举例。例5.6在一个无序且不重复的数据中查找一个数,有则显示所在位置,无则显示“NotExist!”#in

6、cludevoidmain(){inta[15]={21,13,52,0,-25,6,18,1,36,2,-20,17,9,33,8};inti,x,f_at,flag=0;/*flag用于做是否找到的标记*/printf("Inputanumbertobesearched:");scanf("%d",&x);for(i=0;i<15;i++)if(a[i]==x){flag=1;f_at=i;break;}if(flag==1)printf("%4disfound,it'sat%4d.",x,f_at);elseprintf("NotExist!");}例子5

7、.7折半查找:在一个升序且不重复的数据中查找一个数,有则显示所在位置,无则显示“NotExist!”voidmain(){inta[10]={7,9,12,18,21,25,33,39,45,60};intx,left=0,mid,right=9,flag=0;/*flag用于做是否找到的标记*/printf("Inputanumbertobesearched:");scanf("%d",&x);if(x>=a[left]&&x<=a[right])whi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。