C语言二维数组ppt课件.ppt
- 文档编号:11333659
- 上传时间:2023-05-31
- 格式:PPT
- 页数:24
- 大小:850.50KB
C语言二维数组ppt课件.ppt
《C语言二维数组ppt课件.ppt》由会员分享,可在线阅读,更多相关《C语言二维数组ppt课件.ppt(24页珍藏版)》请在冰点文库上搜索。
11二维数组的定义和引用,11.1二维数组的定义,二维数组定义的一般形式为类型说明符数组名常量表达式常量表达式;例如:
定义a为34(3行4列)的数组,b为510(5行10列)的数组。
如下:
floata34,b510;,不能写成floata3,4,b5,10;,11.1二维数组的定义,二维数组中的元素在内存中的排列顺序是:
按行存放,即先顺序存放第一行的元素,再存放第二行的元素,一维数组在内存中的存放,下图表示对a34数组存放的顺序,地址值数组元素,b00b01b02b10b11b12b20b21b22,3000H3002H3004H3006H3008H300AH300CH300EH3010H,例如:
整型数组b33=1,2,3,4,5,6,7,8,9;,123,456,789,问题:
有了二维数组的基础,那么多维数组如何定义呢?
定义三维数组:
floata234;多维数组元素在内存中的排列顺序:
第一维的下标变化最慢,最右边的下标变化最快。
二维数组元素的表示形式为:
数组名下标下标例如:
a23下标可以是整型表达式,如a2-12*2-1,数组元素可以出现在表达式中,也可以被赋值,例如:
b12=a23/2,常出现的错误有:
inta34;/*定义a为34的数组*/a34=3;,在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。
可以用下面4种方法对二维数组初始化,数据类型数组名常量表达式1常量表达式2初始化数据;,
(1)分行给二维数组赋初值。
如:
inta34=1,2,3,4,5,6,7,8,9,10,11,12;,
(2)可以将所有数据写在一个花括弧内,按数组排列的顺序对各元素赋初值。
如:
inta34=1,2,3,4,5,6,7,8,9,10,11,12;,11.3二维数组的引用,(3)可以对部分元素赋初值。
如:
inta34=1,5,9;,100050009000,也可以对各行中的某一元素赋初值,如:
inta34=1,0,6,0,0,11;,1000060000011,100056000000,也可以只对某几行元素赋初值。
如:
inta34=1,5,6;,(4)如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
如:
inta34=1,2,3,4,5,6,7,8,9,10,11,12;它等价于:
inta4=1,2,3,4,5,6,7,8,9,10,11,12;,在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。
如:
inta4=0,0,3,0,10;,0030000001000,二维数组元素的输入与输出,1、输入inta34,i,j;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,2、输出for(i=0;i3;i+)for(j=0;j4;j+)printf(%3d,aij);printf(n);,例11.1将一个二维数组行和列元素互换,存到另一个二维数组中。
#includevoidmain()inta23=1,2,3,4,5,6;intb32,i,j;printf(arraya:
n);for(i=0;i=1;i+)for(j=0;j=2;j+),printf(%5d,aij);bji=aij;printf(n);printf(arrayb:
n);for(i=0;i=2;i+)for(j=0;j=1;j+)printf(%5d,bij);printf(n);/*程序结束*/,运行结果如下:
arraya:
123456arrayb:
142536,例11.2求二维数组,对角线元素之和,#includevoidmain()inta55,i,j,s=0;for(i=0;i5;i+)for(j=0;j5;j+)scanf(%d,例11.3:
有一个34的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
先用N-S流程图表示算法,如下:
程序如下:
#includevoidmain()inti,j,row=0,colum=0,max;inta34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;,for(i=0;imax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%dn,max,row,colum);/*程序结束*/,说明:
杨辉三角是一个下三角形式,它的第一列和对角线上的值都是1,其他的值为上一行前一列的数与上一行同一列的数之和如下形式:
111121133114641151010511615201561,例11.4:
利用二维数组,输出7行7列的杨辉三角。
#includestdio.hmain()inta77,i,j;for(i=0;i7;i+)ai0=1;aii=1;for(i=2;i7;i+)for(j=1;ji;j+)aij=ai-1j-1+ai-1j;,for(i=0;i7;i+)for(j=0;j=i;j+)printf(%3d,aij);printf(n);,例11.5从键盘上输入9个整数,保存在二维数组中,按数组原来位置输出第一行和第一列的所有元素。
分析:
1、输入数组。
2、输出数组时要考虑不是所有数据都输出。
思考:
应该输出的数据在位置关系上有何特点?
(关键!
),#includemain()inti,j,a33;for(i=0;i3;i+)/*输入数组*/for(j=0;j3;j+)printf(a%d%d=,i,j);scanf(%d,此课件下载可自行编辑修改,供参考!
感谢您的支持,我们努力做得更好!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 二维 数组 ppt 课件