二维数组定义的一般形式是: 类型说明符 数组名常量表达式1其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。
二维数组基本运算算法:
(1)转置矩阵:
1 // 其中A, B是m*n矩阵2 void tramat(matrix A, matrix B) { //T(n) = O(m * n)3 int i, j4 for (i = 0i <mi++)5 for (j = 0j <nj++)6 B[j][i] = A[i][j]7 }。
(2)矩阵相加:
1 // 其中A,B,C是m*n矩阵2 void addmat(matrix C, matrix A, matrix B) {3 int i, j4 for (i = 0i <mi++)5 for (j = 0j <nj++)6 C[i][j] = A[i][j] + B[i][j]7 }。
(3)矩阵相乘:
1 // 其中A是m*r矩阵,B是r*n矩阵,C为m*n矩阵 2 void mutmat(matrix C, matrix A, matrix B) { 3 int i, j, k4 for (i = 0i <mi++) 5 for (j = 0j <nj++) { 6 C[i][j] = 07 for (k = 0k <rk++) 8 C[i][j] += A[i][k] * B[k][j]9 }10 }。
二维数组定义的一般形式是:
类型说明符 数组名[常量表达式1][常量表达式2]
其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度
。
请点击输入图片描述
例如:
int a[3][4]
说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3X4个,即:
a[0][0],a[0][1],a[0][2],a[0][3]
a[1][0],a[1][1],a[1][2],a[1][3]
a[2][0],a[2][1],a[2][2],a[2][3]
请点击输入图片描述
二维数组在概念上是二维的,即是说其下标在两个方向上变化,下标变量在数组中的位置也处于一个平面之中。但是,实际的硬件存储器却是连续编址的,存储器单元是按一维线性排列的。在一维存储存储器单元是按一维线性排列的。
请点击输入图片描述
在计算机存放方式有放完一行之后顺次放入第二行。另一种是按列排,即放完一列之后再顺次放入第二列。
请点击输入图片描述
在C语言中,二维数组是按行排列的。
即:
先存放a[0]行,再存放a[1]行最后存放a[2]行。每行中有四个元表也是依次存放。由于数组a说明为int类型,所以每个元素占右两个节。
请点击输入图片描述
多维数组可以是多个下标,如int a[3][3][3]为3维数组,int a[2][2][2][2]为四维数组。
二维数组的定义的一般格式:
1.先声明再初始化
例如:
//1.声明
int[] nums
//初始化
nums = new int[5]
2.声明并初始化
例如:
//2.声明、初始化
int[] nums = new int[10]
3.创建数组同时赋值
例如:
//3.创建数组同时赋值
String[] names=new String[]{"大名","小米","夏雨荷"}
int[] ages=new int[]{21,22,21,56,13}
for (int i = 0i <names.lengthi++){
System.out.prinrln(names[i])
}
for (int i = 0i <ages.lengthi++){
System.out.prinrln(ages[i])
}
4.创建同时赋值,简写,不能写成两条语句
例如:
//4.创建同时赋值,简写,不能写成两条语句
String[] cities = {"上海","北京"}
扩展资料:
数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。
数组是用于储存多个相同类型数据的集合。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。