1、数组的应用 2 前言 上次课程内容回顾 一维数组的定义 一维数组的应用 通过循环来依次访问数组元素 循环控制变量既控制循环次数,也作为数组元素的下标 如何查找、排序、移动数组元素 前言 作业中出现的比较多的问题 概念 二维数组 二维数组拥有两个下标 ,用来表示一个平面的所有数据 比如 excel中的一个工作表或者数学上的矩阵 第一维表示行、第二维表示列 学期 第一学期 第二学期 第三学期 第四学期 数学 物理 化学 生物 外语 85 65 90 70 80 77 80 89 80 78 90 96 92 75 83 80 78 81 86 81 b00 b01 b02 b03 b04 b10
2、b11 b12 b13 b14 b20 b21 b22 b23 b24 b30 b31 b32 b33 b34 概念 二维数组的定义 定义: 数据类型 数组名 常量表达式 1常量表达式 2 ,如 int a23 常量表达是 1是第一维,代表元素的行数,表达式 2代表列数,所以 a23是一个 2行 3列的矩阵,共有 2*3=6 个元素 c+把二维数组看作是一种特殊的一维数组,这个一维数组中的元素又是一个一维数组。把 a看作是一个一维数组,它有 2个元素: a0、 a1,而它们又是一个包含 3个元素的一维数组。 a0、 a1可看作是两个一维数组的数组名。 注意: 上述定义不能写成 int a2,3
3、; 也不能写成 a(2,3) 概念 二维数组的存储结构 二维数组的元素是依次存放在内存中的,先从第 1行存起,第 1行第 1列,第 1行第 2列。然后第 2行第 1列,第 2行第 2列。依此类推 如 int b26; b00 b01 b10 b11 。 。 。 b10 b01 b00 。 b11 内存中 二维数组 二维数组元素的访问 同一维数组一样,不能直接通过名字来访问整个数组 int a23;int b23;a=b; 这是错误的 正确的引用方式: 数组名 行下标 列下标 ,比如 int a23; a01=2; 代表将第 1行第二列的元素的值置为 2. c+不对数组边界进行检查,下标值超界时
4、系统不指出其错误,需程序员自己小心 . 二维数组 二维数组元素的输入输出 对于二维表中的数据,需要行和列都被指定才能定位到它, c+通常用嵌套循环结构来完成对二维数组每个元素的操作,内外层的循环控制变量作为二维数组的两个下标,至于每个控制变量是作为行坐标还是列坐标,则依赖于你访问所有元素的顺序,即,是按行访问,还是按列访问。 如 int a23; 下面提供了常见的几种访问方式 按行读入和输出数据: for(int i=0;iaij; 按列依次输出每个元素: for(int i=0;i #include #include void main() int a44; int i,j; srand(t
5、ime(NULL); /初始化种子 coutmax) max=aij; if(aijmax) max=sji; maxnum=sj0; /同时记录下学号 if(sjitempj; /判断是否猜对 int flagok=1; for(i=0;i=N-1;i+) if(si!=tempi) flagok=0; break; if(flagok=1) cout “恭喜,您猜对了! “endl; break; /统计猜对的个数 int samecount=0; for(j=0;j=N-1;j+) for(int k=0;k=N-1;k+) if(sj=tempk) samecount+; cout “您猜对了其中的 “samecount“ 个字符,请继续 “endl; if(i=M) cout“很抱歉,您已经猜了 N 次,都没猜中! “; 第二部分内容结束 课程总结 通过本次课程你应该了解了 二维数组的定义及数据访问方式 矩阵的常见操作