
C语言-8-二维数组 PPT课件.ppt
14页数 组,数据类型 数组名常量表达式1常量表达式2,例如:int a 24;,将二维数组可以看作是由行和列组成的,类似于矩阵的形式行,列,表示 数组名为a 每个元素的类型int; 数组元素有2X4=8个: 数组的存储单元大小 8 x sizeof(int)=16 数组元素分别为:,a00,a01,a02,a03,a10,a11,a12,a13,二维数组,P148,C语言中,性存储器中存放二维数组 ,是按行排列的 , 即放完一行之后顺次放入第二行 ,依次类推二维数组在内存中的存储,若已定义: int a24,问题1: int b32;,问题2: float a222;,P150,将二维数组也可看作一种特殊的一维数组;则一维数组的数组元素又是一个一维数组的数组名如有定义,int a24; 数组名 a 可看作由a0、a1两个元素组成的一维数组而数组元素a0,a1又是包含四个数组元素的一维数组的数组名二维数组的特殊性,,,1、分行赋初值,,,2、可不分行,全部写在一起:,如: int a23 = 2,4,1,5,12,67 ,如: int a23 = 2,4,1,5,12,67,如: int a3 3 = 1,5,9 ,以行为基准:每行第1列元素赋初值, 未赋值者自动赋0值。
3、若对全部元素赋初值,则定义数组时对第一维的长度可以省略,但第二维的长度一定不能省4、部分赋初值:,如: int a 3 = 2,4,1,5,12,67,,等价,二维数组初始化,如: int a33 = 1,0,5,0,0,9 ,如 int a23 = 1,5,9,7,P151,2 4 1,5 12 67,1 0 0,5 0 0,9 0 0,0 5 0,0 0 9,1 5 9,7 0 0,整个数组的输入格式:,若已定义: int a行长列长;,整个数组的输出格式:,for (i=0;i<行长;i++) for(j=0;j<列长;j++) scanf( %d, ,二维数组的输入输出双循环结构,该语句的作用是:控制二维数组的元素以矩阵的形式输出,for (i=0;i<行长;i++) for(j=0;j<列长;j++) printf( %d,aij ); printf(n) ,,#include main() int a23=1,2,3,4,5,6,b32, i, j ; for (i=0;i<=1;i+ +) for (j=0;j<=2;j+ +) bji=aij; for (i=0;i<3;i+ +) for (j=0;j<2;j+ +) printf(%5d,bij); printf(n); ,,,a =,,,b =,P152 例6.4:求一个矩阵的转置矩阵。
即:将一个二维数组行和列元素互换,存到另一个二维数组中已知:,,,算法,二维数 组输出,#include main() int a34,max, i, j,ai,aj ; for (i=0;i<3;i++) for (j=0;j<4;j++) scanf(“%d”, ,P153 例6.5有一个34的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号include main() int a34,max3, i, j ; for (i=0;i<3;i++) for (j=0;j<4;j++) scanf(“%d”, ,有一个34的矩阵,要求编程序实现,求出每行的最大的值include #define N 5 main() int aNN,i,j; for(i=0;ij) aij=2; for(i=0;i P168.6,#include main() int a1010,i,j,k; for(i=0;i<10;i++) aii=1;ai0=1; for(i=1;i<10;i++) for(j=1;j
