二维数组:
一维数组相当于把变量排成一排,通过编号访问
二维数组相当于把变量排成矩阵,通过行号和列号访问
定义: 类型 数组名[行数][列数]
int arr[3][5]
[0,0][0,1][0,2][0,3][0,4]
[1,0][1,1][1,2][1,3][1,4]
[2,0][2,1][2,2][2,3][2,4]
使用: 数组名[行下标][列下标]
列下标: 0~行数-1
行下标: 0~列数-1
遍历:需要与双层for循环配合,一般外层循环负责遍历行,内层循环负责遍历列
int arr[3][5];
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 5; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
初始化:
类型 数组名[行数][列数] = {
{第一行},{第二行},{第三行},...};
注意:行数可以省略,列数不能省
注意:没有所谓的多维数组,所有的多维数组都是用一维数组来模拟的
练习1:定义一个5*5的二维数组并初始化,找出其中最大值的坐标,找出最小值下标,计算出周边的和是多少
#include <stdio.h>
int main(int argc,const char* argv[])
{
int arr[5][5]={
{
4,72,26, 5, 8},
{
7, 3, 5,39,41},
{
1,33,44, 2, 7},
{
45,73, 9, 7, 3},