




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章数组。本章主要介绍数组的定义和应用,包括一维数组、多维数组、字符数组和字符串处理函数。可视化编程基础,01.06.2020,2,Arrays,C不仅提供基本的数据类型,还提供构造的数据类型,如数组、结构、社区和类。由几个相同类型的元素组成的有序集合称为数组。例如:国际得分30;数组有一个共同的名字叫做数组名。数组由几个元素组成。数组中的每个元素必须是同一类型,并且它们在内存中占据的地址空间是连续的。可视化编程基础,01.06.2020,3,一维数组的定义。一维数组定义的一般形式是:存储类别数据类型数组名常量表达式如:自动输入10;或10周年纪念;然后定义一个包含十个元素的数组,即0,1,2),a 9。C语言中数组的下标从0开始;是下标运算符;常量表达式不能包含变量;数组名的命名必须符合标识符的命名规则。可视化编程基础,01.06.2020,4、一维数组的定义。对于数组定义,应该注意以下几点:在相同的范围内,数组名称不能与其他变量名相同,例如:void main() inta;漂浮10;/错了。方括号中的常量表达式必须有明确的正整数值(不能是变量或实数),并且可以是符号常量。例如:# defined D5 void main() inta32,b7fd;/是合法的。但是下面的解释是错误的:vour main() intn=5;intan,b5.5;/错了。允许在同一类型描述中描述多个数组和变量。例如:inta,b,c,d,k110,k220;可视化编程基础,01.06.2020,5,一维数组的初始化,1,一维数组的初始化:指在定义数组时为数组元素赋值。例如:inta5=1,2,3,4,5 ;2.如果所有数组元素都指定了初始值,则不能指定数组长度。例如:inta=1,2,3,4,5 ;inta5=1,2,3,4,5 ;同样的3。您只能将初始值分配给某些数组元素。例如:inta10=0,1,2,3,4 ;表示只有5个元素A 0 A 4被赋值,后5个元素被自动赋值为0。4.当数组被定义为全局数组或静态数组时,如果没有为数组赋值,则元素的值都为0。5.您只能逐一为元素赋值,而不能为整个数组赋值。例如,所有数组元素都被赋值为1,只能写成:inta5=1,1,1,1,1 ;它不能写成:inta5=1;可视化编程基础,01.06.2020,6,一维数组只能逐个使用,不能一次使用整个数组。例如,具有10个元素的数组的输出必须使用loop语句(I=0;i10I )couta2,交易所,第3,a0a2,交易所,a1a4,交易所,第4,a1a5,交易所,第一轮比较结束后的状态:第二轮开始:01.06.2020,9,一维数组应用示例(按选择法排序),以VisualC编程为基础,经过第二轮循环,发现少量的4个并放入1,依此类推,经过五轮,排序就可以完成了。一个0一个1一个2一个3一个4一个5,第五轮后的最终结果是:j) temp=a一世;aI=aj;。程序段完成排序的选择方法有:01.06.2020,10,一维数组应用示例(排序的选择方法),VisualC编程的基础,以及另一种快速排序算法是:a0a1a2a3a4a5,初始状态,第一周期,第二周期,第三周期,第四周期,第五周期,用最小的数字a5交换a0,用下一个最小的数字a2交换a1,在下一步中用4交换a2,交换a3然后从1到n-1找到一个最小值at,用1交换t,使1最小,依此类推,直到从n-2和n-1找到最小值。,可视化编程基础,一般来说,对于N个数据的排序,算法可以描述为:对于(I=0;(j)t=j;if(t!=I) temp=aI;aI=at;t=温度;(1.06.2020,12,例如:将一列无序数据(例如15841361)放入需要升序的数组a0a5中。一维数组应用示例(冒泡排序),可视化编程基础,初始状态,第一次:01,交换0和1),第二次:12,交换1和2),第三次:a2a3,交换a2和a3,第四次:a3a4,交换a3和a4,第五次:a4a5,交换a4和a5,这最大数字下降到底部,小数向上移动,01.06.2020,13岁。在第一轮5个比较之后,最大数字15被找到并保存在5中,而其他数字向上浮动。在第二轮比较中,在根据上述方法将0与4交换四次之后,可以获得第二个更大的数字13并将其存储在4中。通过类比,可以得到排序结果。一维数组应用示例(气泡排序),VisualC编程基础,第1轮,第2轮,第3轮,第4轮,第5轮,01.06.2020,14岁。一般来说,对于n个数据的冒泡排序,算法可以描述为:一维数组应用实例(冒泡排序),可视化编程基础,一个0与一个1比较,如果一个0一个1,两个数字交换;然后比较1和2,并重复上述步骤。结果大的数量下降到底部,小的数量上升,最大的数量在n-1中。0与n-2,两两比较。以此类推,直到从0和1中找到最大下沉。对于(I=0;(j 1) t=aj;aj=aj 1;aj 1=t;,01.06.2020,注意:定义了一个2行3列的二维数组。数组中元素的数量是(常量表达式1)*(常量表达式2)的值,即有6个整数数据,在存储器中打开24个连续的字节存储单元。数组每个维度的下标从0开始。对于二维数组,逻辑上它可以被视为一个表结构,第一个下标表示“行号”,第二个下标表示列号。可视化编程基础,01.06.2020,16,二维数组的定义。在C语言中,二维数组元素以行的形式存储在内存中,称为行主顺序。C语言把二维数组看作是一个特殊的一维数组,它由两个元素组成:0和1,而0和1由一维数组组成。例如,在上面的例子中,数据在内存中的存储顺序是:a:0:1:必须强调的是,0,1不能用作下标变量,它们是数组名,而不是简单的下标变量。可视化编程基础,01.06.2020,17,多维数组的定义,对于3D数组,可以根据2D数组的定义方法来定义:如inta234;第一个下标叫做“页下标”,第二个下标叫做“行下标”,第三个下标叫做“列下标”。这个三维数组还需要占用内存中连续的内存空间。上面定义的三维数组将首先把第0页上的数组元素放到内存中,然后把数组元素放到第1页上。每页上的元素仍将按“行主顺序”存储。可视化编程基础,01.06.2020,18,对二维(多维)数组的引用,对二维数组的引用可以通过双循环实现。例如,您想要引用34数组中的元素:对于(I=0;从键盘向数组元素输入数据,VisualC编程基础,01.06.2020,19,二维(多维)数组的初始化,二维数组的初始化方法如下:1、给inta23等行赋值初始值=1,3,5,2,4,6 ;2.根据数组在内存中的排列顺序分配初始值,例如:inta23=1,2,5,2,4,6 ;将初始值(所有数据)分配给二维数组时,可以省略对第一维长度的描述。在这种情况下,第一维的长度由初始值分配到的行数决定,但第二维不能省略。例如:23=1,3,5,2,4,6 ;可以表示为:3=1,3,5,2,4,6 ;3=1,3,5,2,4,6 ;3.初始值可以分配给某些元素,例如:inta23=1, 2 ;或inta23=1,0,4则剩余的元素值不带首字母,可视化编程基础,01.06.2020,20,二维(多维)数组示例,示例:以下杨辉三角形(需要10行)111112113311464111510105161520156117213535281711828567881193684126843691,Visual C编程基础,01.06.2020,21,数组和函数,数组可用作数据传输函数的参数。数组以两种形式用作函数参数。一个是作为函数参数的数组元素。另一个是数组名函数参数。将数组元素用作函数参数,将数组元素用作函数参数,与将普通变量用作函数参数完全相同。当函数调用发生时,作为参数的数组元素的值被传递到形式参数,以实现单向值传递。可视化编程基础,01.06.2020,22,数组和函数,当数组名用作函数参数1,数组名用作函数参数时,形式参数和实际参数必须是同一类型的数组。当形式参数和实际参数不一致时,就会出现错误。2.当数组用作函数参数时,不会传递值,但会传递地址,即参数数组的第一个地址被分配给参数的组名。获得第一个地址后,形状参数的组名就相当于一个实数组。事实上,形状参数组和参数组是同一个数组,共享一个内存空间。3.当使用数组作为函数参数时,由于形式参数和实际参数是同一个数组,当形式参数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级信息技术上册 第一单元 第5课《画美丽的早晨》教学设计2 冀教版
- 加班审批表(完整)
- 会议(培训)记录(完整版)
- 九年级美术(浙美版)上册教学设计
- 2024南方出版传媒股份有限公司校园招聘笔试参考题库附带答案详解
- 一年级道德与法治下册 第二单元 这样做真好 第5课《懂礼貌 人人夸》教学设计 粤教版
- 教师个人师德师风学习培训心得合集
- 七年级生物下册 第四单元 第11章 第2节 尿的形成与排出教学设计 (新版)北师大版
- 全国闽教版初中信息技术八年级上册第一单元活动一《图像的获取》教学设计
- 九年级语文上册 第六单元 22范进中举教学设计 新人教版
- 砂石矿山行业发展趋势
- 《有色金属材料制备与应用》课件 3-铸造铝硅合金
- 证券市场监管
- 健康养殖技术推广计划
- 测绘生产成本费用定额2022
- 积极思考的力量读后感
- 工程量清单(C区停车场土建)
- 大学军事理论课教程第四章现代战争第二节 新军事革命
- 钢筋挂篮计算书
- 专题四“挺膺担当”主题团课
- 广西贵港市港南区木梓镇石牛岭建筑石料用玄武岩矿项目环评报告
评论
0/150
提交评论