“21天养成好习惯” 第一期 -20
作者:互联网
二维数组:
如何定义二维数组:
如:
实质上,二维数组是由一维数组构成的
如:
int a2[2][3];
//由两个一维数组组成,数组长度为2;
//数组元素是由一个存放3个整数的数组;
内存单元是一维的
二维数组存放:
二维数组在内存中按行连续存放。
例:int a[2][3];
a数组有二行三列的整形数组,共有六个元素;
分别为:
二维数组的引用:
需要用两个下标,
数组名[下标1][下标2];
两个下标必须分别加方括号。不能把a[下标1][下标2]写成a[0,1]
行下标和列下标不能交换。alOI[l]和a[lI이是两个不同的元素
不能直接引用a[0]。
二维数组的初始化:
初始化可以按分行赋初值的方式,也可以按不分行赋初值的方式,分行赋初值稈序更清晰;
其中
表示:在大花括号内的第一个花括号给第一行的赋初值即a[0][0],a[0][1],a[0][2];使他们分别等于10,20,30;同理:第二个花括号即为第二行的元素赋初值;
但在 中
表示分别给a[0][0],a[0][1],a[0][2],a[1][0],a[1][1],a[1][2]赋予10 20 30 40 50 60的值;
同一维数组一样,二维数组也可以给部分元素赋初值;
两种赋值方式注意区别。
二维数组的初始化:
如果初始化提供了足够的信息(全部初值或分行初始化)则定义数组时可以省略第一维的长度。
例。求一个3×4的矩阵中最大的元素及数组中的
行列位置。
分析思路:
假设第一个元素是当前最大值
从第二个(或第一个)元素起,逐个比较判断,如果发现该元素比当前最大值大,则将其值记录新的当前最大值,并记下当前行类位置;
#include<stdio.h>
int main()
{
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
int i,j;
int row=0,colum=0,max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{
max=a[i][j];
row=i;
colum=j;
}
printf("矩阵的最大元素是a[%d][%d]=%d\n",row,colum,max);
return 0;
}
标签:下标,21,int,初值,元素,第一期,二维,数组,20 来源: https://blog.csdn.net/Charlotte_21/article/details/121255621