收藏 分享(赏)

第七讲 二维数组.ppt

上传人:hskm5268 文档编号:10036466 上传时间:2019-09-30 格式:PPT 页数:19 大小:120.50KB
下载 相关 举报
第七讲  二维数组.ppt_第1页
第1页 / 共19页
第七讲  二维数组.ppt_第2页
第2页 / 共19页
第七讲  二维数组.ppt_第3页
第3页 / 共19页
第七讲  二维数组.ppt_第4页
第4页 / 共19页
第七讲  二维数组.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、第七讲 二维数组,二维数组的定义和引用,一、二维数组的定义定义: 类型说明符 数组名常量表达式1常量表达式2;例如: int number 5 4 ; char ch34, name 8 ;,ch0 ch0 0、ch0 1 、 ch0 2 、ch0 3 ch1 ch1 0、 ch1 1 、 ch1 2、ch1 3 ch2 ch2 0、 ch2 1、 ch2 2、ch2 3 相当于3个一维数组ch04、ch14、ch24,数组的存储结构:以“行”为主序,.,二、二维数组的引用数组名下标下标 如:a23数组元素可出现在表达式中 b12=a23/2也可以被赋值 a23=3注意:(1)其中下标可以是整

2、型表达式;(2)不要写成a2,3等形式;(3)下标值应在已定义的数组大小范围内;(4)定义与引用时用的a34的区别。,三、 二维数组的初始化 (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 ; 等价于:int a34= 1,0,0,0, 5,0,0,0, 9,0,0,0 ; (4)若对全部元素赋初值,则第一维的长度可以不指定,但不能省略第二维的长度。如: in

3、t a34= 1,2,3,4,5,6,7,8,9,10,11,12 ; 等价于: int a 4= 1,2,3,4,5,6,7,8,9,10,11,12 ;,四、二维数组应用举例,例1:将一个二维数组行和列元素互换,存到另一个二维数组中。,分析:,aij = bji,main( ) int a23=1,2,3,4,5,6; int b32 , i, j;for (i=0;i=1;i+) for (j=0; j=2;j+) printf(“%5d” , aij);bji=aij; printf(“n”);for (i=0; i=2; i+) for (j=0; j=1; j+)printf(“%

4、5d” , bij );printf(“n”); ,程序如:,例2: 有一个二维数组a34,找出其中的最大元素,并指出所在的行号和列号。,N -S 图:,for ( i=0; i=2; i+)for ( j=0; j=3; j+)if ( aij max ) max = aij;row = i;colum = j; printf(“ max=%d , row=%d , colum=%dn”, max , row, colum); ,main( ) int i , j , row=0 , colum=0, max;int a34= 1,2,3,4, 9,8,7,6, -10,10,-5,2 ;m

5、ax=a00;,程序:,将二维数组按某行的进行列排序 求二维数组各列的和 求二维数组的鞍点矩阵(鞍点是指二维数组中某个位置上的数在行上是最大值,在列上是最小值) 将二维数组旋转90度,例1: 有3个字符串,要求找出其中的最大者。,分析:设有一个二维字符数组str,大小为320,每一行可以容纳20个字符。如下图所示:,str0,str1,str2,C h i n a 0,J a p a n 0,E n g l i s h 0,程序如下:,main( ) char string20, str320;int i;for(i=0; i0 ) strcpy(string, str0); else str

6、cpy(string, str1);if (strcmp(str2, string)0) strcpy(string, str2);printf(“nThe largest string is:n%s”, string); ,运 行,例4 打印出以下的杨辉三角形(要求打印出10行)。,1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ,分析:设一个二维数组:a1111,则杨辉三角形有如下特点: (1)数组的第一列和对角线元素值均为1; (2)其他各元素为a i j=a i-1 j-1 +a i-1 j ,#define N 11main( ) int i, j, a N N;for( i=1; iN; i+) aii=1; ai1=1; for( i=3; iN; i+)for( j=2; j=i-1; j+)aij=ai-1j-1+ai-1j;for( i=1; iN; i+) for( j=1; j=i; j+)printf(“%6d”, aij );printf(“n”); ,11 11 2 11 3 3 11 4 6 4 1 1 5 10 10 5 1 .,作业:如果要输出的最终结果如上图所示, 则怎样修改程序?,作业,实验书P31/3,4;P32/B2;P36/2,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报