Java - Duda con este ejercicio. (JAVA)

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Duda con este ejercicio. (JAVA)

Publicado por Juan Carlos (2 intervenciones) el 04/05/2020 19:27:18
Buenas! Tengo una gran duda con este ejercicio:
Espero y puedan darme una mano, se los agradecería mucho ( Estoy apenas comenzando en esto, he de aclarar)

EJERCICIO:

"Crear un programa que lea por teclado una tabla de 10 números enteros y desplace N posiciones en el arreglo (N es digitado por el usuario)"

SOLUCIÓN:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class JavaApplication12 {
 
    public static void main(String[] args) {
 
        int[] numeros = new int[10];
        int posiciones,ultimo;
 
        for (int i = 0; i < 10; i++) {
           numeros[i] = Integer.parseInt(JOptionPane.showInputDialog("Inserte un numero "));
        }
        posiciones=Integer.parseInt(JOptionPane.showInputDialog("Digite una posicion "));
 
        for (int i = 0; i <= posiciones; i++) {
            ultimo=numeros[9];
            for (int j = 8; j >= 0; j--) {
                numeros[j+1]=numeros[j];
            }   numeros[0]=ultimo;
 
        }
    }
}

MI DUDA:

Digamos que el usuario rellena el arreglo "numeros" con los números del 1 al 10 de manera creciente, y, en las posiciones a desplazar digita, por ejemplo, el número "4".

Su solución impresa en consola quedaría tal que así:

7-8-9-10-1-2-3-4-5-6

Bien, mi duda más precisamente está en esta parte:

la-gran-duda

numeros[0]=ultimo

"Ultimo" es igual a numeros[9], numeros[9] vale 10 (Recuerda, porque en este caso el usuario digitó los números del 1 al 10)

Entonces, ¿Por qué si en la solución asignamos el valor de "numeros[0]=ultimo", 10 nunca es el primer valor en mostrarse?
Realmente no entiendo muy bien parte del funcionamiento de este ejercicio
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 1.997
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Duda con este ejercicio. (JAVA)

Publicado por Billy Joel (599 intervenciones) el 04/05/2020 20:03:55
En el segundo for haces un reodenamiento es por eso que el valor siempre cambia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Sandro
Val: 433
Bronce
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Duda con este ejercicio. (JAVA)

Publicado por Sandro (160 intervenciones) el 05/05/2020 00:33:59
no explicas detenidamente que deseas hacer, ya que al moverlos debes de guardar el valores antes de mover el datos, si no lo remplazas. además en tu ciclo llega a cero, este menos -1 es truene.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

Duda con este ejercicio. (JAVA)

Publicado por Juan Carlos (2 intervenciones) el 05/05/2020 00:47:34
imagen

Lo que el ejercicio pide es algo así
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 1.997
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

[SOLUCIÓN] Duda con este ejercicio. (JAVA)

Publicado por Billy Joel (599 intervenciones) el 05/05/2020 01:22:21
Lo resuelvo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void main(String[] args) {
    int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int desplazar = 3;
    int aux;
    for (int i = 0; i < desplazar; i++) {
        for (int j = a.length - 1; j > 0; j--) {
            aux = a[j];
            a[j] = a[j - 1];
            a[j - 1] = aux;
        }
    }
    for (int i = 0; i < a.length; i++) {
        System.out.print(a[i] + (i + 1 < a.length ? ", " : "\n"));
    }
}

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar