Nueva pregunta

Pregunta:

Fecha: 05-10-2015 07:53:36 (En Español)

Consulta de JAVA (OFFTOPIC)[No resuelta]

Buenos dias tengo este ejercicio y tengo una pequeña inquietud
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 ?

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.
Etiquetas: OFFTOPIC - Pregunta 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
 
frjcbbae garagebible.com