多维数组的讲解

多维数组

数组是具有相同数据类型且按一定次序排列的一组变量的集合体。构成一个数组的所有变量称为数组元素,数组的名字称为数组名,每一个数组元素由数组名及其在数组中的位置(下标)确定。数组按下标个数分为:一维数组,二维数组和三维数组等,二维及以上数组统称为多维数组

在数组名后有两对方括号的数组被称为二维数组,同理,数组名后有n对方括号的数组被称为n维数组,二维及以上的数组被称为多维数组。

定义形式:

类型标识符 数组名[正整型常量表达式1]【正整型常量表达式2】…

多维数组定义的数组元素个数为

正整型常量表达式1*整型常量表达式2…

例如

int x[2][3]

是一个整形二维数组,共有6个元素。它们按顺序分别是

X[0][0],x[0][1],x[0][2],x[1][0],x[1][1],x[1][2]

不能用变量表示数组长度

数组名后面应该用[]

不能用负数表示数组长度

不能用变量表达式表示数组长度

多维数组存储形式

x[0][0]

x[0][1]

x[0][2]

x[1][0]

x[1][1]

x[1][2]

依次存放

多维数组的引用

与一维数组一样,不能整体引用一个多维数组,只能引用其元素,引用格式类似一维数组

二维数组的引用形式为

数组名[下标1][下标2]

三维数组的引用形式为

数组名[下标1][下标2] [下标3]

其中,下标是正整型常量表达式,也可以是含变量的正整型表达式

(特别注意下标越界的问题)

多维数组的初始化

1.把初始值放在一个大括号里

例如,二维数组x[2][3]用下列方法初始化

Int x[2][3]={1,2,3,4,5,6}

于是

x[0][0] =1

x[0][1] =3

x[0][2] =5

x[1][0]=2

x[1][1]=4

x[1][2]=6

对第一维的长度可以不指定,对第二维的长度必须指定

例如

Int a[3][4]

等价于

Int a[ ][4]

将多维数组分解成多个一维数组

将二维数组看成一个特殊的“一维数组“,它的每一个元素又是一个一维数组

例如

Int a[2][3]

可以把它看成是具有两个元素:a[0],a[1]的一维数组,而a[0],a[1]又都是具有3个元素的一维数组,即

a[0] : a[0][0]   a[0][1]    a[0][2]

a[1] : a[1][0]   a[1][1]    a[1][2]

因此,对二维数组a[2][3]的初始化又可以分解成多个一维数组的初始化

int a[2][3] = {{1,3,5},{2,4,6}};

应用

求一个3*4矩阵中数值最大的元素,以及它所在的行号和列号

#includeint main()

{

int i,j;

int row=0; //定义行数

int column=0; //定义列数

int max;  //定义最大值

int a[3][4];

for (i=0;i<=2;i++)

for (j=0;j<=3;j++)

scanf ("%d",&a[i][j]); //向矩阵中输入数值

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 ;

column = j;

}  // 将最大数所在的行和列得出

printf("max=%d\nrow=%d\ncolumn=%d\n",max,row+1,column+1); //输出最大值和所在行和列

return 0 ;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 9,539评论 2 13
  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 11,528评论 1 42
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,938评论 0 2
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 8,810评论 3 44
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 9,243评论 0 6