“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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值