resueltos recorrer multidimensional matriz llenar imprimir generar examples ejercicios arreglos arreglo array c# multidimensional-array initialization array-initialization

recorrer - multidimensional array c# examples



¿Cómo inicializar una matriz de matrices 2D? (2)

Tengo una matriz de matrices 2D. Por ejemplo, es como:

{{{0, 0, 1}, {1, 0, 0}} {{0, 0, 3}, {2, 1, 2}, {2, 2, 1}, {3, 0, 0}} {{0, 0, 7}, {3, 2, 6}, {6, 2, 3}, {6, 3, 2}, {7, 0, 0}}}

Pero si escribo

int [,][] arrays={{{0, 0, 1}, {1, 0, 0}} {{0, 0, 3}, {2, 1, 2}, {2, 2, 1}, {3, 0, 0}} {{0, 0, 7}, {3, 2, 6}, {6, 2, 3}, {6, 3, 2}, {7, 0, 0}}};

el compilador se quejará "; expected".

Si escribo

int [,][] arrays={new int[,] {{0, 0, 1}, {1, 0, 0}} new int[,] {{0, 0, 3}, {2, 1, 2}, {2, 2, 1}, {3, 0, 0}} new int[,] {{0, 0, 7}, {3, 2, 6}, {6, 2, 3}, {6, 3, 2}, {7, 0, 0}}};

el compilador se quejará

"Se espera un inicializador de matriz anidada".

Entonces, ¿por qué sucede esto y cuál es la forma correcta de inicialización?



Estás tratando de crear una matriz dentada. Su matriz tiene n filas por lo que su primer cuadrado debe ser [] no [,]. El elemento en cada fila (índice de n ) es una matriz 2D, por lo que debe usar [,] . Finalmente, puede solucionar su problema modificando int [,][] a int[][,] .

int[][,] arrays = { new int[,] {{0, 0, 1}, {1, 0, 0}}, new int[,] {{0, 0, 3}, {2, 1, 2}, {2, 2, 1}, {3, 0, 0}}, new int[,] {{0, 0, 7}, {3, 2, 6}, {6, 2, 3}, {6, 3, 2}, {7, 0, 0}} };