3.5 二维数组

一、二维数组的引入和定义

1、前面已提到,有的问题需要用二维数组来处理。
例如:有3个小分队,每队有6名队员,要把这些队员的工资用数组保存起来以备查。这就需要用到二维数组,见图下。如果建立一个数组pay,它应当是二维的,第一维用来表示第几分队,第二维用来表示第几个队员。例如用pay2,3表示2分队第3名队员的工资,它的值是1725。
在这里插入图片描述
2、定义在这里插入图片描述3、二维数组实际上是特殊的一维数组。
说明:

	int array[2]={1,2};							//一维数组
	int array[2][3]={{22,33,44},{77,88,99}};  
	  //{22,33,44}就是一维数组,外层也是一个一维数组

二、二维数组的初始化
1、按行列初始化

int array1[2][3]={{22,33,44},{77,88,99}};  

2、没明确行列,类似一维数组

int array[3][4]={1,2,3,4,5,6,7,8,9,0,1,2};

3、部分赋初值
1)案例一
在这里插入图片描述2)案例二
在这里插入图片描述3)案例三
在这里插入图片描述在这里插入图片描述
4)案例四
可以不写行,但一定要写列

	int array1[3][4]={1,2,3,4,5,6,7,8,9,0,1,2};
	int array2[][4]={1,2,3,4,5,6,7,8,9,0,1,2};

三、二维数组的定义的相关演示
对每行每列的具体数值和元素的数值进行输出
1、代码:

#include <stdio.h>
int main()
{
	int array1[2][3]={{22,33,44},{77,88,99}};    //{22,33,44}就是一维数组,外层也是一个一维数组
	int i,j;
	for(i=0;i<2;i++){
		for(j=0;j<3;j++){
			printf("%d %d %d\n",i,j,array1[i][j]);
		}
	}
	return 0;
}

2、编译结果:
在这里插入图片描述四、二维数组的遍历——循环的嵌套

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

#include <stdio.h>
int main()
{
	int i,j,hang,lie;
	int array[3][4]={{1,12,23,84},{15,116,347,68},{99,110,131,121}};
	int max;
	max=array[0][0];             //假定一个最大值
	
	for(i=0;i<3;i++){
		for(j=0;j<4;j++){
			if(max<array[i][j])  //拿刚刚的最大值与别人打,打不过,就换成对方的值
				max=array[i][j];
				hang=i;          //行和列要赋值出来,否则输出的就是3和4(循环结束的i和j值)
				lie=j;
		}
	}
	printf("最大值是第%d行第%d列的%d",i,j,max);
	return 0;
}

2、编译结果:
在这里插入图片描述
总结:至此,二维数组的内容就结束了,在指针中,数组的知识点还多有体现,在指针的学习中,再重温一次这里的知识点。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值