Pregunta:
Fecha: 05-10-2015 07:53:36
(En Español)
A la hora de almacenar los valores hago un for hacia adelante y dentro un for hacia atras para almacenar los valores de esta forma
001
010
100
y creo que hasta hay todo va bien,
pero por que @"#%$#"!!"#% a la hora de imprimir tengo que tambien hacer un for hacia atras si los valores ya fueron almacenados de esa forma , no se supone que solo con hacer for hacia adelante ya lee los valores almacenados de esa forma ?
Agradezco sus respuestas. Votos: 0 - Respuestas: 1 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
Consulta de JAVA (OFFTOPIC)[No resuelta]
Buenos dias tengo este ejercicio y tengo una pequeña inquietudA la hora de almacenar los valores hago un for hacia adelante y dentro un for hacia atras para almacenar los valores de esta forma
001
010
100
y creo que hasta hay todo va bien,
pero por que @"#%$#"!!"#% a la hora de imprimir tengo que tambien hacer un for hacia atras si los valores ya fueron almacenados de esa forma , no se supone que solo con hacer for hacia adelante ya lee los valores almacenados de esa forma ?
class arregloInvertido {
public static void main(String[] args) {
int i, j;
int[][] a = new int[3][3];
for (i = 0; i < a.length - 1; i++) {
for (j = a[i].length - 1; j > 0; j--) {
if (j == i) {
a[i][j] = 1;
} else {
a[i][j] = 0;
}
}
}
for (i = 0; i < a.length; i++) {
for (j = a[i].length; j > 0; j--) {
System.out.print(a[i][j]);
}
System.out.println();
}
}
}
Agradezco sus respuestas. Votos: 0 - Respuestas: 1 - Vistas: 8 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 11-11-2015 07:25:22 Hola,
Más vale tarde que nunca.
El asunto está en los detalles. Traduje tu código a PHP y estuve haciendo pruebas y el asunto está en la manera en que guardas los datos.
Dado que estás recorriendo J de atrás hacia adelante al final de la iteración tendrás los datos así:
X j0 j1 j2
i0 [1] [0] [0]
i1 [0] [1] [0]
i2 [0] [0] [1]
Para imprimirlos correctamente tuviste que hacer el segundo loop y salen bien porque los lees al revés.
Te pongo aquí la traducción de tu código a PHP.
<?php class arregloInvertido { public static function doThis() { $i; $j; $a = [ array(0 => null, 1 => null, 2 => null), array(0 => null, 1 => null, 2 => null), array(0 => null, 1 => null, 2 => null) ]; for ($i = 0; $i <= count($a) - 1; $i++) { for ($j = count($a[$i]) - 1; $j >= 0; $j--) { if ($j == $i) { $a[$i][$j] = 1; } else { $a[$i][$j] = 0; } } } for ($i = 0; $i <= count($a) - 1; $i++) { for ($j = count($a[$i]) - 1; $j >= 0; $j--) { echo $a[$i][$j]; } echo PHP_EOL; } } } arregloInvertido::doThis();
Si no quieres recorrer el arreglo al revés al leer entonces tienes que almacenarlo al revés.
Te pongo un ejemplo en PHP:
<?php class arregloInvertido { public static function doThis() { $i; $j; $a = [ array(0 => null, 1 => null, 2 => null), array(0 => null, 1 => null, 2 => null), array(0 => null, 1 => null, 2 => null) ]; $indice_arreglo = 0; for ($i = count($a) - 1; $i >= 0; $i--, $indice_arreglo++) { for ($j = 0; $j < count($a[$i]); $j++) { if ($j == $i) { $a[$indice_arreglo][$j] = 1; } else { $a[$indice_arreglo][$j] = 0; } } } for ($i = 0; $i < count($a); $i++) { for ($j = 0; $j < count($a[$i]); $j++) { echo $a[$i][$j]; } echo PHP_EOL; } } } arregloInvertido::doThis();
Saludos! Votos: 0 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
