- 4
- 0
- 约 8页
- 2016-08-04 发布于重庆
- 举报
第十二讲(数组2)
第十二讲 二维数组的定义与引用
【主要讲授内容】
7.2 二维数组的定义
7.3 字符数组
【重点与难点】
1.重点
二维数组的概念、定义、赋值及引用;字符数组的定义、赋值及引用
2.难点
二维数组的概念、二维数组的基本运用
【教学要求】
1. 掌握基本概念:二维数组、字符数组;
2. 二维数组的定义、赋值、引用;
3. 字符数组的定义、赋值、引用;
4. 二维数组和字符数组的基本运用。
【实施方法】
课堂讲授,利用多媒体演示数组概念,采用提问式教学法引入教学。
【学时安排】2学时
讲授内容
1.二维数组基本概念
二维数组是既有行又有列的数组的数组。从列的角度来说,即一行就是一个一维数组,所有的行就构成了一个二维数组。在C中,数组是以行优先存放的,因此二维数组的第二维变化最快,然后才是第一维。
(1) 定义形式如下
类型说明型 数组名[下标1][下标2];
根据C语言的规定,可以把二维数组看作一个特殊的一维数组:它的每一个元素又是一个一维数组。例如,
int a[3][3];
二维数组可看成一维数组的效果如下图所示:
即上述二维数组中的各个元素的存放顺序依次为:a[0][0]-a[0][1]-a[0][2]-a[1][0]-a[1][1]-a[1][2]-a[2][0]-a[2][1]-a[2][2]
(2) 初始化
二维数组的初始化方法如下:
1)逐行对所有元素赋初值。例如,
int a[2][3]={{1,7,6},{2,3,17}};
上述初始化列表中的每一对子花括号内的数值严格对应到数组中的一行。数据按顺序赋给该行中的第0列,第1列等等,如果没有足够的列获得初值,则这些列的值将是一个随机值。
2)将所有数据写在一对花括号内。例如,
int a[2][3]={1,7,6,2,3,17};
根据数据元素存储的行优先原则,这些元素先赋值给第一行的元素,再赋值给第二行的元素等等。
3)可以对每行的前一部分元素赋初值。例如,
int a[2][3]={{1},{2,6}};
则1、2、6分别赋值给a[0][0]、a[1][0]、a[1][1]。
4)如果对全部元素赋初值,则第一维的长度可以不指定,但第二维的长度不能省。例如,
int a[][3]={1,7,6,2,3,17};
也可以只对部分元素赋初值,但应分行赋初值。例如,
int a[][3]={{1},{2,6}};
(3) 引用形式
数组名[下标1][下标2]
其中,“下标1”表示行下标,“下标2”表示列下标,二者必须都是整型表达式。例如,输出数组a中的第一行第二列的元素:
printf(“%d”, a[0][1])。
例如,对于上述array数组,输出第0个元素赋值:
printf(“%d”, array[0]);
请注意数组的定义形式和数组元素的引用形式的区别。
2.二维数组应用举例
例7.3 按行优先次序输入一个2X3的矩阵,再按列优先次序输出。
基本思路
(1)定义一个2行3列的二维数组,接收键盘输入
(2)将列数作为控制循环的条件,如果3列还没有输完,则转(3),否则转(4)
(3)输出当前列i(首先是第一列,i=0)的当前行j(首先是第一行,j=0)元素的值,即a[j][i],接着,行号加1输出a[j+1][i]后换行,然后将输出列号加1,行号赋为0,再转(2)
(4)屏幕按列优先输出矩阵的值, 程序结束
程序见教程P98
例7.4 有一个3X4的矩阵,编程序求出其中最大的那个元素的值,以及它所在的行号和列号。
基本思路
(1)用二维数组a[3][4]存放矩阵,另外定义3个变量max,row,col,用于存放最大值,及所在行号和列号,且它们的初值分别是a[0][0],0,0
(2)外层循环控制行变量i,内层循环控制列变量j
(3)在每一次内循环中,将max的值和a[i][j]进行比较,只要发现后者更大,即执行语句块:max=a[i][j]; row=I; col=j;
(4)当外循环体结束时,max,row和col变量的值即为所求
程序见教程P99
3.字符数组基本概念
字符数组是数组元素类型为字符类型的数组。字符数组中的一个元素用来存放一个字符。字符数组具有数组的全部特性。
(1)字符串常量
字符数组可以被视为是字符变量的集合。和它相对应的是字符串常量,所谓字符串常量就是用一对双引号括起来的字符常量的集合。例如, abc,hello都是字符串常量。
字符串在存储到内存中时,系统会自动对它加一个′\0′作为结束符。例如:hello表面上看只有5个字符,但在内存中占6个字符,最后一个字符就是由系统自动添加的′\0′,也可以用0或NULL来表示。
(2)字符数组的定义
字符数组包括一维字符数组和多维字符数组(以二维为例)。其定义方
您可能关注的文档
最近下载
- 安徽省合肥市名校联考2026届数学八年级第一学期期末教学质量检测模拟试题含解析.doc VIP
- 2025年山西职业单招考试真题及答案 完整版2025.pdf VIP
- 区块链基本概念.pptx VIP
- 2021年度“双一流”建设专项资金绩效评价自评报告.pdf VIP
- 劳动法案例分析及参考答案.docx VIP
- 广西左江治旱黑水河现代化灌区工程环境影响报告书.pdf VIP
- FDA热效应评估指南(中文翻译件) thermal effects evaluation.pdf VIP
- 华东理工大学双一流建设中期自评报告.PDF VIP
- 项目环境与职业健康安全管理工作计划.doc VIP
- 人人商城恶意诉讼应诉指南-含胜诉答辩状和证据清单.docx
原创力文档

文档评论(0)