物联网学习教程—二维数组的引用

282 阅读2分钟

 二维数组元素的表示形式为:

  数组名[下标][下标]

  例如:a[2][3]

  下标可以是整型表达式,如a[2-1][2*2-1]

  不要写成a[2,3],a[2-1,2*2-1]形式

  数组元素可以出现在表达式中,也可以被赋值

  例如:b[1][2]=a[2][3]/2

  在使用数组元素时,应该注意下标值应在已定义的数组大小的范围内。

  常出现的错误有:

  int a[3][4];/定义a为3×4的数组/

  ┆

  a[3][4]=3;

  数据类型

  数组名[常量表达式1][常量表达式2]={初始化数据};

  可以用下面4种方法对二维数组初始化:

  1.分行给二维数组赋初值。

  例如:int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

  2.可以将所有数据写在一个花括号内,按数组排列的顺序对各元素赋初值。

  

  4.如果对全部元素都赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。

  例如:int a[3][4]={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};

  在定义时也可以只对部分元素赋初值而省略第一维的长度,但应分行赋初值。

  例如:int a[][4]={{0,0,3},{},{0,10}};

  

  二维数组程序举例

  例1、将一个二维数组行和列元素互换,存到另一个

  二维数组中。

  #include<stdio.h>

  void main()

  {

  int a[2][3]={{1,2,3},{4,5,6}};

  int b[3][2],i,j;

  printf(″array a:\n″);

  for(i=0;i<=1;i++)

  {

  for(j=0;j<=2;j++)

  {

  printf(″%5d″,a[i][j]);

  b[j][i]=a[i][j];

  }

  printf(″\n″);

  }

  printf(″array b:\n″);

  for(i=0;i<=2;i++)

  {

  for(j=0;j<=1;j++)

  printf("%5d″,b[i][j]);

  printf(″\n″);

  }

  }/程序结束/

  

  例2:有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。

  

  程序:

  #include<stdio.h>

  void main()

  {

  int i,j,row=0,colum=0,max;

  int a[3][4]={{1,2,3,4},{9,8,7,6},

  {-10,10,-5,2}};

  max=a[0][0];

  for(i=0;i<=2;i++)

  for(j=0;j<=3;j++)

  if(a[i][j]>max)

  {max=a[j];

  row=i;

  colum=j;

  }

  printf(″max=%d,row=%d,colum=%d\n″,

  max,row,colum);

  }/程序结束/

  最后:

  关注回复“物联网”即可获取物联网全套视频教程