二维数组和字符串

上传人:平*** 文档编号:48821871 上传时间:2018-07-21 格式:PPT 页数:32 大小:230.65KB
返回 下载 相关 举报
二维数组和字符串_第1页
第1页 / 共32页
二维数组和字符串_第2页
第2页 / 共32页
二维数组和字符串_第3页
第3页 / 共32页
二维数组和字符串_第4页
第4页 / 共32页
二维数组和字符串_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《二维数组和字符串》由会员分享,可在线阅读,更多相关《二维数组和字符串(32页珍藏版)》请在金锄头文库上搜索。

1、二维数组和字符串二维数组 二维表 数表(数阵,矩阵)1 2 34 5 6学号 语文 数学 外语110010010021101101201.二维数组的定义: 数据类型 数组名常量表达式常 量表达式例: int a34; 定义了一个3*4(3行4列)的数组。注意:不能写成 int a3,4;的形式。 int a3,4;定义的是一维数组;数组 的标志是,每一个代表一维00 01 02 03 10 11 12 13 20 21 22 23 C+采用这样的定义方式,使我们可以把二维数组看作是一个特殊的 一维数组:它的元素又是一个一维数组。(即把二维数组的每行看作 一个元素)例: int a34;可以把a

2、看成一个一维数组,它有3个元素a0、a1、a2,每个元素又 是含4个元素的一维数组。见下图。a0 - a00,a01,a02,a03 a a1 - a10,a11,a12,a13a2 - a20,a21,a22,a23此时, a0、a1、a2相当于3个一维数组的名字,上面定义的二维 数组可以理解为定义了3个一维数组,即相当于int a0 4,a1 4, a2 4;C+的这种处理方法很方便,我们在后面会体会到 C+语言中,二维数组中元素在计算机内存 中的存放顺序是:按行存放,即先在内存 中存放第一行的元素,再放第二行的元素( 第一维变化慢,第二维变化快)。例:int a34; 二维数组a在内存中

3、的存放 顺序为 a00,a01,a02,a03,10,a11,a1 2,a13,a20,a21,a22,a23 C+允许使用多维数组有了二维数组的基础,再掌握多维数组是不困难的。例如 ,三维实数数组定义为:数据类型 数组名常量表达式常量表达式常量表达式;double a234定义了三位数组,共2*3*4=24个元素。多维数组在内存中 的排列顺序类似于二维数组,第一维的下标变化最慢,最 右边的下标变化最快。a000,a001,a002,a003,a010, 2 二维数组元素的引用数组名下标下标 注意:每维下标从0开始;下标不要超过各维的大小 。例:int a34;第1行第2列的元素是a01(也可

4、说成第1行的第2个元素是a01)a23是第3行的第4个元素a33违法 3 二维数组的初始化对于二维数组有下列初始化方法: (1)分行给二维数组赋初值,如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;这种赋值方法比较直观,把第一对括号内 的数值赋给第一行的元素,第二括号内的 数值赋给第二行的元素,依此类推。(2)可以将所有数据写在一个花括号内,这时,计 算机自动按数组元素在内存中的排列顺序对各元 素赋初值。例:int a34=1,2,3,4,5,6,7,8,9,10,11,12; (3)可以只对数组中部分元素初始化。如:int a34=1,5,9; 此处的作用表示:a0

5、0元素被赋成1,a10元素被 赋成5,a20元素被赋成9,而数组中的其他元素 被初始化为0(与一维数组的初始化机制相同) (4)如果对二维数组的全部元素初始化,则定义数 组时第一维长度可以省略,但第二维长度不能省 ,如:分行进行初始化,如: int a4=0,0,3,0,10; char c10=C,p,r,o,g,r,a,m,0; 4 二维数组的赋值、输入、输出使用二重循环,对每个元素赋值、输入和输出:for(int i=0;iaij;aij*=ai j;cout0) elsereturn 0;return 1; 1. 用一维数组名作函数参数可以用数组名做函数参数,此时形参与实 参都是数组名

6、(也可用指针)。例:用选择法对数组中的元素排序 数组名作为函数参数,实参是数组名,形参也应为数组名 (或指针)。实参数组与形参数组类型应该一致,如不一 致,将出错。 数组名代表的是数组首元素的地址(数组起始地址)。因 此用数组名作函数实参时,不是把实参数组元素的值传递 给形参,而只是将实参数组的首地址传递给形参,这样, 实参数组和形参数组就共占同一段内存单元。这样,(1 )声明形参数组并不意味着真正建立一个包含若干元素的 数组,在调用函数时也不对它分配存储单元,只是用这 样的形式表示形参是数组,中的数值无实际作用。形参 一维数组的声明中可以写元素个数,也可以不写,编译系 统对的数值不予处理。(

7、2)需要传递数组的元素个数。下面得函数首部都是等价的void select(int arr,int n)void select(int arr5,int n)void select(int arr10,int n)2. 用多维数组名作函数参数 如果用二维数组名作为实参和形参,在对形参数组声明是 ,必须制定第二维的大小,且应该与实参的第二维的大小 相同。第一维的大小可以指定,也可以不指定。 如:形参数组int a310 与 int a10,二者都合法且等价;int a与int a3两者都不合法。在第二维大小相同的前提下,形参和实参的第一维可以不同 。如实参数组定义为 int score510;则

8、形参可以声明为int score310;int score10;这时形参二维数组与实参二维数组都是由相同类型和大小 的一维数组组成的,实参数组名score代表其首元素 score0的起始地址。 如果是三维或更多维的数组,处理方法也是类似的。 例:有一个3*4的矩阵,求矩阵中所有元素的最大值。要 求用函数求最大值。int max(int arr4,int n) int m;m=a00;for(int i=0;i using namespace std; int a10001; void SelectSort(int array, int n) int i, j, k,temp; for (i =

9、 0; i aj) /改成ain;for (i=0;iai;SelectSort(a,n);for (i=0;i using namespace std; int a10001; void BuddleSort(int a, int n) int i, j,temp; bool flag = true; for (i = 0; ia j + 1) /改成ajn;for (i=0;iai;BuddleSort(a,n);for (i=0;i字符串或字符数组名;例: char s20;cins; (2)用cout输出,格式是:cout字符串变量功能:输入一个字符串。调用格式2:cin.getlin

10、e(字符串变量,变量大小)功能:从键盘输入一个以Enter键标志结束的字符串。 例1 输入n个字符串,要求找出其中的最大 者。要求使用函数找最大者。(每个字符 串长度小于30) 例2:统计单词统计一个英文句子中有多少英文单词。假 设句子中字符数小于80个,单词间用至少 一个空格隔开(可以有多个空格),句子 头部也可以有多个空格,句子以*作为结束 标志。 string 类 C+提供了一种数据类型字符串类型 (string)。在使用方法上,它和 char, int等基 本类型一样,可以用来定义变量,即字符 串变量。 实际上,string并不是C+本身具有的基本 类型,而是C+标准模板库中声明的一个字 符串类,用这种类可以定义对象,每一个 字符串变量都是string类的一个对象。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号