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 ( );
}