欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    二维数组和字符串.ppt

    • 资源ID:67320849       资源大小:230.50KB        全文页数:32页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    二维数组和字符串.ppt

    二维数组和字符串二维数组二维数组二维表 数表(数阵,矩阵)1 2 3 4 5 6学号 语文 数学 外语110010010021101101201.二维数组的定义二维数组的定义:数据类型 数组名常量表达式常量表达式 例:int a34;定义了一个3*4(3行4列)的数组。注意注意:不能写成 int a3,4;的形式。int a3,4;定义的是一维数组;数组的标志是,每一个代表一维000102031011121320212223C+采用这样的定义方式,使我们可以把二维数组看作是一个特殊的采用这样的定义方式,使我们可以把二维数组看作是一个特殊的一维数组:它的元素又是一个一维数组一维数组:它的元素又是一个一维数组。(即即把二维数组的每行看作一个元素)例例:int a34;可以把a看成一个一维数组,它有3个元素a0、a1、a2,每个元素又是含4个元素的一维数组。见下图。a0 -a00,a01,a02,a03a a1 -a10,a11,a12,a13 a2 -a20,a21,a22,a23 此时,a0、a1、a2相当于3个一维数组的名字,上面定义的二维数组可以理解为定义了3个一维数组,即相当于 int a0 4,a1 4,a2 4;C+的这种处理方法很方便,我们在后面会体会到 C+语言中,二维数组中元素在计算机内存语言中,二维数组中元素在计算机内存中的存放顺序是:按行存放,即先在内存中的存放顺序是:按行存放,即先在内存中存放第一行的元素,再放第二行的元素中存放第一行的元素,再放第二行的元素(第一维变化慢,第二维变化快第一维变化慢,第二维变化快)。例:int a34;二维数组a在内存中的存放顺序为a00,a01,a02,a03,10,a11,a12,a13,a20,a21,a22,a23C+允许使用多维数组允许使用多维数组 有了二维数组的基础,再掌握多维数组是不困难的。例如,三维实数数组定义为:数据类型 数组名常量表达式常量表达式常量表达式;double a234 定义了三位数组,共2*3*4=24个元素。多维数组在内存中的排列顺序类似于二维数组,第一维的下标变化最慢,最右边的下标变化最快。a000,a001,a002,a003,a010,2 二维数组元素的引用二维数组元素的引用 数组名下标下标注意:注意:每维下标从0开始;下标不要超过各维的大小。例:int a34;第1行第2列的元素是a01 (也可说成第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;此处的作用表示:a00元素被赋成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;i3;i+)for(int j=0;jaij;aij*=ai j;coutaijendl;例题1 矩阵的行列互换 将一个二维数组的行列互换,存到另外一个二维数组中。例如:a=1 2 3 行列互换后放在数组b中,b=1 4 4 5 6 2 5 3 6例题2 河图 将19填到九宫格中,使得横竖斜三个方向的三个数之和均为15int main()for(int i=1;i=9;i+)for(int j=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();return 0;5int check()int flag10=0,0,0,0,0,0,0,0,0,0;for(int i=0;i3;i+)for(int j=0;j0)&!flagaij)flagaij=1;else return 0;return 1;1.用一维数组名作函数参数 可以用数组名做函数参数,此时形参与实参都是数组名(也可用指针)。例:用选择法对数组中的元素排序数组名作为函数参数,实参是数组名,形参也应为数组名(或指针)。实参数组与形参数组类型应该一致,如不一致,将出错。数组名代表的是数组首元素的地址(数组起始地址)数组名代表的是数组首元素的地址(数组起始地址)。因此用数组名作函数实参时,不是把实参数组元素的值传递给形参,而只是将实参数组的首地址传递给形参,这样,实参数组和形参数组就共占同一段内存单元。这样,(1)声明形参数组并不意味着真正建立一个包含若干元素的数组,在调用函数时也不对它分配存储单元,只是用这样的形式表示形参是数组,中的数值无实际作用。形参一维数组的声明中可以写元素个数,也可以不写,编译系统对的数值不予处理。(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;则形参可以声明为int score310;int score10;这时形参二维数组与实参二维数组都是由相同类型和大小的一维数组组成的,实参数组名score代表其首元素score0的起始地址。如果是三维或更多维的数组,处理方法也是类似的。例:有一个3*4的矩阵,求矩阵中所有元素的最大值。要求用函数求最大值。int max(int arr4,int n)int m;m=a00;for(int i=0;in;i+)for(int j=0;j4;j+)if(marrij)m=marrij;return m;/由小到大 直接选择排序#include using namespace std;int a10001;void SelectSort(int array,int n)int i,j,k,temp;for(i=0;i n-1;i+)for(j=i+1;jaj)/改成ain;for(i=0;iai;SelectSort(a,n);for(i=0;in;i+)coutai;return 0;/由小到大#include using namespace std;int a10001;void BuddleSort(int a,int n)int i,j,temp;bool flag=true;for(i=0;in-1;i+)flag=false;for(j=0;ja j+1)/改成ajn;for(i=0;iai;BuddleSort(a,n);for(i=0;in;i+)coutai字符串或字符数组名;字符串或字符数组名;例:char s20;cins;(2)用cout输出,格式是:cout字符串或字符数组名;字符串或字符数组名;例:char s20=“This is a string.”;couts;的输出结果为This is a string.。也可直接输出字符串,如:cout“This is a string”注:字字符符数数组组中中若若没没有有字字符符串串结结束束标标志志,则则一一直直输输出出到到在在内内存存中中碰碰到到0标志。标志。6.字符串处理函数求字符串的长度求字符串的长度 函数原型:strlen(const char string);功能:计算并返回字符串的长度。字符串复制字符串复制 函数原型:strcpy(char destination,const char source)功能:strcpy将字符串复制到字符串变量中,该变量中原有的内容被覆盖。必须保证字符串变量的这个字符数组有足够的单元容纳字符串。函数原型:strncpy(char destination,const char source,int numchars);功能:strncpy,将字符串source中前numchars个字符拷贝到字符串destination中。字符串连接字符串连接 原型:strcat(char target,const char source);功能:将字符串source接到字符串target的后面,必须保证字符串变量空间足够。原型:strncat(char target,const char source,int numchars);功能:将字符串source的前numchars个字符接到字符串target的后面 字符串比较字符串比较 调用格式:strcmp(字符串1,字符串2)功能:比较两者,返回值为0,则相等。为大与0,则字符串1大与字符串2;否则小于。字符串输出 调用格式:cout字符串变量 功能:输入一个字符串。调用格式2:cin.getline(字符串变量,变量大小)功能:从键盘输入一个以Enter键标志结束的字符串。例1 输入n个字符串,要求找出其中的最大者。要求使用函数找最大者。(每个字符串长度小于30)例2:统计单词 统计一个英文句子中有多少英文单词。假设句子中字符数小于80个,单词间用至少一个空格隔开(可以有多个空格),句子头部也可以有多个空格,句子以*作为结束标志。string 类C+提供了一种数据类型字符串类型(string)。在使用方法上,它和 char,int等基本类型一样,可以用来定义变量,即字符串变量。实际上,string并不是C+本身具有的基本类型,而是C+标准模板库中声明的一个字符串类,用这种类可以定义对象,每一个字符串变量都是string类的一个对象。

    注意事项

    本文(二维数组和字符串.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开