二维数组元素的表示形式为:
数组名[下标][下标]
例如: 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
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
{
for (j=0;j
{
printf(″%5d″,a[i][j]);
b[j][i]=a[i][j];
}
printf(″\n″);
}
printf(″array b:\n″);
for (i=0;i
{
for(j=0;j
printf("%5d″,b[i][j]);
printf(″\n″);
}
} /*程序结束*/
例2: 有一个3×4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。
程序:
#include
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
for (j=0;j
if (a[i][j]>max)
{ max=a[i][j];
row=i;
colum=j;
}
printf(″max=%d,row=%d,colum=%d\n″,
max,row,colum);
} /*程序结束*/
领取专属 10元无门槛券
私享最新 技术干货