已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二维数组和字符串,二维数组,二维表数表(数阵,矩阵)123456,1.二维数组的定义:数据类型数组名常量表达式常量表达式例:inta34;定义了一个3*4(3行4列)的数组。注意:不能写成inta3,4;的形式。inta3,4;定义的是一维数组;数组的标志是,每一个代表一维,C+采用这样的定义方式,使我们可以把二维数组看作是一个特殊的一维数组:它的元素又是一个一维数组。(即把二维数组的每行看作一个元素)例:inta34;可以把a看成一个一维数组,它有3个元素a0、a1、a2,每个元素又是含4个元素的一维数组。见下图。a0-a00,a01,a02,a03aa1-a10,a11,a12,a13a2-a20,a21,a22,a23此时,a0、a1、a2相当于3个一维数组的名字,上面定义的二维数组可以理解为定义了3个一维数组,即相当于inta04,a14,a24;C+的这种处理方法很方便,我们在后面会体会到,C+语言中,二维数组中元素在计算机内存中的存放顺序是:按行存放,即先在内存中存放第一行的元素,再放第二行的元素(第一维变化慢,第二维变化快)。例:inta34;二维数组a在内存中的存放顺序为a00,a01,a02,a03,10,a11,a12,a13,a20,a21,a22,a23,C+允许使用多维数组有了二维数组的基础,再掌握多维数组是不困难的。例如,三维实数数组定义为:数据类型数组名常量表达式常量表达式常量表达式;doublea234定义了三位数组,共2*3*4=24个元素。多维数组在内存中的排列顺序类似于二维数组,第一维的下标变化最慢,最右边的下标变化最快。a000,a001,a002,a003,a010,2二维数组元素的引用数组名下标下标注意:每维下标从0开始;下标不要超过各维的大小。例:inta34;第1行第2列的元素是a01(也可说成第1行的第2个元素是a01)a23是第3行的第4个元素a33违法,3二维数组的初始化对于二维数组有下列初始化方法:(1)分行给二维数组赋初值,如:inta34=1,2,3,4,5,6,7,8,9,10,11,12;这种赋值方法比较直观,把第一对括号内的数值赋给第一行的元素,第二括号内的数值赋给第二行的元素,依此类推。,(2)可以将所有数据写在一个花括号内,这时,计算机自动按数组元素在内存中的排列顺序对各元素赋初值。例:inta34=1,2,3,4,5,6,7,8,9,10,11,12;(3)可以只对数组中部分元素初始化。如:inta34=1,5,9;此处的作用表示:a00元素被赋成1,a10元素被赋成5,a20元素被赋成9,而数组中的其他元素被初始化为0(与一维数组的初始化机制相同)(4)如果对二维数组的全部元素初始化,则定义数组时第一维长度可以省略,但第二维长度不能省,如:分行进行初始化,如:inta4=0,0,3,0,10;charc10=C,p,r,o,g,r,a,m,0;,4二维数组的赋值、输入、输出使用二重循环,对每个元素赋值、输入和输出:for(inti=0;iaij;aij*=aij;coutaijendl;,例题1矩阵的行列互换将一个二维数组的行列互换,存到另外一个二维数组中。例如:a=123行列互换后放在数组b中,b=144562536,例题2河图将19填到九宫格中,使得横竖斜三个方向的三个数之和均为15,intmain()for(inti=1;i=9;i+)for(intj=1;j=9;j+)a11=5;a00=i;a01=j;a02=15-i-j;a22=15-5-i;a12=15-a02-a22;a10=15-5-a12;a20=15-i-a10;a21=15-a20-a22;if(check()print();return0;,intcheck()intflag10=0,0,0,0,0,0,0,0,0,0;for(inti=0;i0),1.用一维数组名作函数参数可以用数组名做函数参数,此时形参与实参都是数组名(也可用指针)。例:用选择法对数组中的元素排序,数组名作为函数参数,实参是数组名,形参也应为数组名(或指针)。实参数组与形参数组类型应该一致,如不一致,将出错。数组名代表的是数组首元素的地址(数组起始地址)。因此用数组名作函数实参时,不是把实参数组元素的值传递给形参,而只是将实参数组的首地址传递给形参,这样,实参数组和形参数组就共占同一段内存单元。这样,(1)声明形参数组并不意味着真正建立一个包含若干元素的数组,在调用函数时也不对它分配存储单元,只是用这样的形式表示形参是数组,中的数值无实际作用。形参一维数组的声明中可以写元素个数,也可以不写,编译系统对的数值不予处理。(2)需要传递数组的元素个数。下面得函数首部都是等价的voidselect(intarr,intn)voidselect(intarr5,intn)voidselect(intarr10,intn),2.用多维数组名作函数参数如果用二维数组名作为实参和形参,在对形参数组声明是,必须制定第二维的大小,且应该与实参的第二维的大小相同。第一维的大小可以指定,也可以不指定。如:形参数组inta310与inta10,二者都合法且等价;inta与inta3两者都不合法。在第二维大小相同的前提下,形参和实参的第一维可以不同。如实参数组定义为intscore510;则形参可以声明为intscore310;intscore10;这时形参二维数组与实参二维数组都是由相同类型和大小的一维数组组成的,实参数组名score代表其首元素score0的起始地址。如果是三维或更多维的数组,处理方法也是类似的。,例:有一个3*4的矩阵,求矩阵中所有元素的最大值。要求用函数求最大值。intmax(intarr4,intn)intm;m=a00;for(inti=0;in;i+)for(intj=0;j4;j+)if(mai;SelectSort(a,n);for(i=0;in;i+)coutain;for(i=0;iai;BuddleSort(a,n);for(i=0;in;i+)coutai字符串或字符数组名;例:chars20;cins;(2)用cout输出,格式是:cout字符串或字符数组名;例:chars20=“Thisisastring.”;couts;的输出结果为Thisisastring.。也可直接输出字符串,如:cout字符串变量功能:输入一个字符串。调用格式2:cin.getline(字符串变量,变量大小)功能:从键盘输入一个以Enter键标志结束的字符串。,例1输入n个字符串,要求找出其中的最大者。要求使用函数找最大者。(每个字符串长度小于30),例2:统计单词统计一个英文句子中有多少英文单词。假设句子中字符数小于80个,单词间用至少一个空格隔开(可以有多个空格),句子头部也可以有多个空格,句子以*作为结束标志。,str
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 木材销售协议书模板
- 新车买卖协议书样本
- 水利水电工程师考务培训试题及答案
- 2026-2031年中国弱视治疗仪行业市场发展现状及投资前景预测报告
- 食品生产计划考试题及答案
- 老年公寓老人生活监护人培训试题及答案
- 教育扶贫共建协议书
- 2026-2031年中国生态修复行业前景研究与市场需求预测报告
- 文章刊登协议书模板
- 人民银行考试题库及答案
- 中国建筑史-绘图题
- GB/T 9442-2010铸造用硅砂
- 溶胶-凝胶法:高均一性、高比表面积催化剂制备
- FZ/T 73009-2021山羊绒针织品
- 纤维化学与物理-第三章蛋白质纤维-蚕丝课件
- 医务处的管理职责课件
- 中医妇科学课件-妊娠病胎漏胎动不安
- 甾体及其苷类-2011课件
- 大健康数据课件
- 新北师大版七年级上册生物 第2单元 生物体的结构 教学课件
- 非物质文化遗产概论:第二章-非遗分类-第七节传统节日类遗产课件
评论
0/150
提交评论