已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,1,构造数据类型,第六章,2,2,主要内容,数组概述 一维数组 二维数组 字符数组 结构体类型,3,3,二维数组,一、二维数组的定义 二、二维数组的引用 三、二维数组的初始化 四、二维数组元素在内存中的排列顺序 五、应用举例,4,4,一、二维数组的定义,格式: 数组类型名 数组名数组元素个数 数组元素个数 例: float a5 4; int b5 6; char str3020;,二维实数数组, 5行、4列,二维整数数组, 5行、6列,二维字符数组, 30行、20列,第一维,第二维,5,5,float a5 4;,列,行,二维实数数组: 5行、4列,矩阵 A,0,1,2,3,4,0,1,2,3,6,6,二维数组在内存中的存放过程: float a5 4;,1.00 2.00 3.00 4.00,5.00 6.00 7.00 8.00,9.00 10.0 11.0 12.0,13.0 14.0 15.0 16.0,17.0 18.0 19.0 20.0,1.00,2.00,3.00,4.00,5.00,6.00,. ,18.0,19.0,20.0,7,7,char str3020,在内存中的存放过程:,M a r r y,H a r r y,P h i l i p,B u s h,L i n d a,0,1,2,3,4,0,1,3,4,2,8,8,二、数组的引用,格式:数组名行下标列下标; 例: b32:b 数组第 4 行第 3 列的元素; aij : a 数组第 i+1 行第 j+1 列的元素; 注意:数组的下标从 0 开始计数,9,9,对数组的操作是通过对每个数组元素的处理来实现的:,二维数组的输入 int b32; printf(“please enter the data:n“) for(i = 0;i3;i+) for(j = 0;j2;j+) scanf(“%d“, ,内循环,外循环,每一个数组元素,怎样输入数据, 能保证输入正确?,程序中语句的写法 计算机处理读入数据的方法,for(i = 0;i3;i+) for(j = 0;j2;j+) scanf( “%d, “, ,b00,b01,b10,b11,b20,b21,1,b00,int b32; for(i = 0;i2;i+) for(j = 0;j3;j+) scanf(“%d“, ,如果, 输入程序如下所示:,那么, 输入的数组元素的顺序如何?,1.0,输入的数据应以怎样的顺序排列?,、b10,、b20,、b01,、b11,、b21,5.0,9.0,2.0,6.0,10.0,2,12,输出数组,int b32; for(i = 0;i3;i+) for(j = 0;j2;j+) printf(“b%d%d = %d“, i, j, bij); printf(“n“); ,输出结果形式如何?,b00 = 1.0,b01 = 2.0,b10 = 5.0,b11 = 6.0,b10 = 9.0,b11 = 10.0,13,13,如果输出程序改为:,int b32; for(i = 0;i2;i+) for(j = 0;j3;j+) printf(“b%d%d = %dt“, j, i, bji); printf(“n“); ,b00 = 1.0 b01 = 2.0 b02 = 5.0 b10 = 6.0 b11 = 9.0 b12 = 10.0,输出结果形式如何?,四、二维数组的初始化,分行赋初值 int a23 = 1, 2, 3, 4, 5, 6 ;,a,第一行,第二行,15,四、二维数组的初始化,不分行赋初值 int b23 = 1, 2, 3, 4, 5, 6;,16,16,对部分元素赋初值 int c24 = 0, 2, 3 ; 未赋值的元素自动赋值0, 而且前面的0不能省, 后面的0可以省,对全部元素赋初值, 省略第一维的长度 int a 2 = 1, 2, 3, 4 ; 第一维的长度由初始化状态决定。 本例为:2行,四、二维数组的初始化,17,17,二维数组:,定义: 数组元素的类型、数组变量名称、数组的维数、每一维数组元素的个数; 引用: 数组型变量必须先定义, 后使用。 只能逐个引用数组元素, 不能直接引用整个数组型变量。 数组下标从 0 开始。,用二维数组编程时,可以这样思考:,在存储器中有一片连续的内存区,名称为a。 它对应一个m行n列的矩阵。,将需要处理的一组数据,依次放入这片连续内存区的每一个单元中。对应的名称分别为:,a0 0,a0 1,a02, ,a0 n-1,根据问题的需要,对这组数据中的每一个数据元素进行相应的处理,处理时的访问方式为:a ij ,即:数组a中行下标为i列下标为j 的位置处的数组元素。,a1 0,a1 1,a12, ,a1 n-1,am-1 0,am-1 1,am-12, ,am-1 n-1, ,19,19,二维数组,一、二维数组的定义 二、二维数组的引用 三、二维数组的初始化 四、二维数组元素在内存中的排列顺序 五、应用举例,20,20,定义三个二维数组:a34, b34, c34;,for(i = 0;i3;i+) for(j = 0;j4;j+) scanf(“%d“, ,输入 b 矩阵的元素值:,for(i = 0;i3;i+) for(j = 0;j4;j+) scanf(“%d“, ,输入 a 矩阵的元素值:,1. 求两个3*4矩阵的和。,21,21,计算 c 矩阵的元素值:,输出矩阵a、b、c,for(i = 0;i3;i+) for(j = 0;j4;j+) cij = aij+ bij;,for(i = 0;i3;i+) for(j = 0;j4;j+) printf(“%6d“, aij); printf(“n“); ,1. 求两个3*4矩阵的和。,for(i = 0;i3;i+) for(j = 0;j4;j+) printf(“%6d“, bij); printf(“n“); ,for(i = 0;i3;i+) for(j = 0;j4;j+) printf(“%6d“, cij); printf(“n“); ,22,23,24,24,2. 将一个4*3的矩阵转置。,(1)定义两个二维数组:a43, b34;,for(i = 0;i4;i+) for(j = 0;j3;j+) scanf(“%d“, ,(2)输入 a 矩阵的元素值:,25,25,2. 将一个4*3的矩阵转置。,(4)输出矩阵a、b:,for(i = 0;i3;i+) for(j = 0;j4;j+) printf(“%6d“ , b i j ); printf(“n“); ,for(i = 0;i4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第二单元第06课时用混合运算解决实际问题(3)(教学课件)数学人教版三年级上册(新教材)-中考备考真题
- 七上地理期中试题及答案
- 信息技术模拟试题及答案
- 电大教育学考试题及答案
- 成都轻工职业技术大学公开招聘2名人事代理副高级以上职称专任教师的模拟试卷含完整答案详解【夺冠】
- 求职心理调适与压力管理指南:克服面试焦虑
- 2026安徽宿州市灵璧县选调事业单位人员24人模拟试卷【考点梳理】附答案详解
- 2026中国农业科学院蔬菜花卉所高层次人才引进11人(北京)笔试题库(预热题)附答案详解
- 0423初一地理(人教版)-亚洲的自然环境(2)-1教案
- 网络安全威胁攻防演练
- 2026年左心耳封堵术知情同意书
- 警用装备培训制度
- 英语培训机构 试讲课件
- 2026年网络安全法培训课件
- 2026中国储备粮管理集团有限公司山东分公司招聘备考题库(50人)及答案详解(基础+提升)
- DB11∕T 334.4-2020 公共场所中文标识英文译写规范 第4部分:体育
- 治疗失眠症的认知行为疗法训练
- DB63∕T 2074-2022 虹鳟网箱养殖技术规范
- 《医疗机构中药饮片等级标准 甘草片》
- 贵州省2025年普通高中学业水平合格性考试生物试题及答案
- (港口与航道工程专业基础)勘察设计注册土木工程师考试题库及答案(2025年湖南省)
评论
0/150
提交评论