8yue16
二维数组
一维是一条线 二维则是一个面(表)
有两个下标的数组,本质上是以数组作为数组元素的数组
类型[,]数组名 = new 类型[ 一维长度 (行 ), 二维长度 (列)]
二维数组第二个维度必须相同
int[,] arr = new int[2, 3]{ { 2, 3, 4 }, { 5, 6, 7 } };
int[,] arr_1 = new int[,]{ {1,3 }, {4,5 }, {6,7} };
int[,] arr_2 = { { 12, 35, 31 }, { 12, 34, 56 } };
二维遍历
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
Console.Write("{0}",arr[i,j]);
}
Console.Write (" ");
}
将一个二维数组的行和列交换,存储到另外一个数组中去
2 , 3 ,5
1 , 6 ,4
2 ,1
3 ,6
5 ,4
int[,]a=new int[3,2]{{1,5},{2,2},{2,3}};
for (int i = 0; i <3; i++) {
for (int j = 0; j <2; j++) {
new [i, j] = a [j, i];
Console.Write (a [i, j]);
}
}
有一个3行4列的二维数组, 要求编程找出最大元素,并输出所在的行和列;
int[,] arr = new int[3,4]{{1,45,12,1},{3,12,4,13},{12,5,323,4}};
int max = arr[0,0];
int maxX = 0;
int maxY= 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
if (max < arr [i, j]) {
max = arr [i, j];
maxX = i;
maxY = j;
}
}
}
Console.WriteLine ("最大元素为{0},行{1},列{2}",max,maxX,maxY);
定义一个三行三列的二维数组,求对角线之和
int[,] arr_3 = {{12,12,44},{14,43,43},{12,53,11}};
int sum = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == j) {
sum += arr_3 [i, j];
}
}
}
Console.WriteLine ("sum = "+ sum );、
多维数组
交错数组
表示一个表格数据,行确定,但是每一个行的列数不同,就可以用交错数组
本质是一个一维数组, 里面的元素是数组
类型[][]数组名 = new 类型[数组长度][];
在声明交错数组的时候,只需要制定一维数组的长度
int[][] arr = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};
交错数组遍历
for (int i = 0;i < arr.Length;++i){
for (int j = 0; j < arr [i].Length; ++j) {
Console.Write (arr[i] [j]);
}
Console.WriteLine ( );
}