文档详情

数组的应用2.ppt

发布:2017-05-19约7.86千字共25页下载文档
文本预览下载声明
Copyright ? 2004-2005 NameOfTheOrganization. All rights reserved. Copyright ? 2004-2005 NameOfTheOrganization. All rights reserved. 数组的应用2 前言 上次课程内容回顾 一维数组的定义 一维数组的应用 通过循环来依次访问数组元素 循环控制变量既控制循环次数,也作为数组元素的下标 如何查找、排序、移动数组元素 前言 作业中出现的比较多的问题 概念 二维数组 二维数组拥有两个下标,用来表示一个平面的所有数据 比如excel中的一个工作表或者数学上的矩阵 第一维表示行、第二维表示列 学期 第一学期 第二学期 第三学期 第四学期 数学 物理 化学 生物 外语 85 65 90 70 80 77 80 89 80 78 90 96 92 75 83 80 78 81 86 81 b[0][0] b[0][1] b[0][2] b[0][3] b[0][4] b[1][0] b[1][1] b[1][2] b[1][3] b[1][4] b[2][0] b[2][1] b[2][2] b[2][3] b[2][4] b[3][0] b[3][1] b[3][2] b[3][3] b[3][4] 概念 二维数组的定义 定义: 数据类型 数组名[常量表达式1][常量表达式2] ,如 int a[2][3] 常量表达是1是第一维,代表元素的行数,表达式2代表列数,所以 a[2][3]是一个2行3列的矩阵,共有 2*3=6 个元素 c++把二维数组看作是一种特殊的一维数组,这个一维数组中的元素又是一个一维数组。把a看作是一个一维数组,它有2个元素:a[0]、a[1],而它们又是一个包含3个元素的一维数组。a[0]、a[1]可看作是两个一维数组的数组名。 注意:上述定义不能写成 int a[2,3]; 也不能写成 a(2,3) 概念 二维数组的存储结构 二维数组的元素是依次存放在内存中的,先从第1行存起,第1行第1列,第1行第2列。。。然后第2行第1列,第2行第2列。。。。依此类推 如 int b[2][6]; b[0][0] b[0][1] b[1][0] b[1][1] 。。。。 。。。。 。。。。 b[1][0] b[0][1] b[0][0] 。。。。 b[1][1] 内存中 二维数组 二维数组元素的访问 同一维数组一样,不能直接通过名字来访问整个数组 int a[2][3];int b[2][3];a=b; 这是错误的 正确的引用方式: 数组名[行下标][列下标] ,比如 int a[2][3]; a[0][1]=2; 代表将第1行第二列的元素的值置为2. c++不对数组边界进行检查,下标值超界时系统不指出其错误,需程序员自己小心. 二维数组 二维数组元素的输入输出 对于二维表中的数据,需要行和列都被指定才能定位到它,c++通常用嵌套循环结构来完成对二维数组每个元素的操作,内外层的循环控制变量作为二维数组的两个下标,至于每个控制变量是作为行坐标还是列坐标,则依赖于你访问所有元素的顺序,即,是按行访问,还是按列访问。 如int a[2][3]; 下面提供了常见的几种访问方式 按行读入和输出数据: for(int i=0;i=1;i++) { for(int j=0;j=2;j++) { cout请输入a[i][j]; cina[i][j]; } } 按列依次输出每个元素: for(int i=0;i=2;i++) { for(int j=0;j=1;j++) { couta[j][i] ; } coutendl; } for(int i=0;i=1;i++) { for(int j=0;j=2;j++) { couta[i][j] ; } coutendl; } 注意不一定非得i代表行,j代表列 for(int j=0;j=1;j++) { for(int i=0;i=2;i++) { couta[j][i] ; } coutendl; } 二维数组 二维数组的初始化 初始化指对数组元素赋值的过程,可以有下面几种方式 手工对某个元素赋值,适用于元素较少的情况 int a[2][3]; a[0,0]=1;a[0,1]=2;a[1,2]=3; 没有赋值的元素会是随机值,比如 a[1][0],编译时会提示 warning 。 定义时就赋值,使用花括号嵌套,内层花括号用,分割 int a[2][3]={{1,2,3},{4,5,6}}; 如果定义时就对全部元素赋值,可以省略第一维大小,上面
显示全部
相似文档