¡Hola a tod@s! Soy nuevo en este mundillo de la programación, así que perdonarme por quizás ser un ejercicio tan básico pero es que me trae de cabeza. Os pongo el enunciado.
Leer 20 números e introducirlos en un array (entre 1 y 10). Después, genera un número aleatorio, que representará una posición del array, y muestra intercaladamente los 3 valores situados en las tres posiciones superiores e inferiores a ese número. Ejemplo: 1 4 5 8 6 3 9 1 8 9 8 4 6 3 4 9 2 3 2 2 Generamos un número aleatorio: el 6 Por tanto, accedemos a la posición 6, que contiene el número 9. Ahora debemos mostrar los 3 valores situados por encima de la posición 6, y los 3 valores situados por debajo de la posición 6: Valores mostrados: 9 (número contenido en la posición 6) 1 (valor en la posición 7) 3 (valor de la posición 5) 8 (valor de la posición 8) 6 (valor de la posición 4) 9 (valor de la posición 9) 8 (valor de la posición 3) Ojo: Tendremos que controlar que el número tenga 3 valores a derecha e izquierda, es decir, que no nos salgamos del array buscando valores, como por ejemplo, si el número aleatorio es un 1, no mostraremos nada. Será solo en caso de que existan esos 3 valores a ambos lados. Ojo: Si por ejemplo sale el número 1, sí se realizaría el ejercicio mostrando los 3 valores de las posiciones superiores (posiciones 2,3 y 4) pero solo 1 inferior (el de la posición 0).
Os pongo lo que llevo de código, que es la primera parte pero no consigo hacer el resto.
public class Prog05_Ejer1 {
public static void main(String[] args) { int[] rango = new int[20]; int[] generado = new int[20]; int numAleatorio; int posicion = 0;
numAleatorio = (int) (Math.random() * (19 + 1));
System.out.println(numAleatorio);
for (int i = 0; i < rango.length; i++) { rango[i] = (int) (Math.random() * (10 - 1 + 1) + 1);
¡Hola a tod@s!
Soy nuevo en este mundillo de la programación, así que perdonarme por quizás ser un ejercicio tan básico pero es que me trae de cabeza. Os pongo el enunciado.
Leer 20 números e introducirlos en un array (entre 1 y 10). Después, genera un
número aleatorio, que representará una posición del array, y muestra
intercaladamente los 3 valores situados en las tres posiciones superiores e
inferiores a ese número.
Ejemplo:
1 4 5 8 6 3 9 1 8 9 8 4 6 3 4 9 2 3 2 2
Generamos un número aleatorio: el 6
Por tanto, accedemos a la posición 6, que contiene el número 9.
Ahora debemos mostrar los 3 valores situados por encima de la posición 6, y los 3 valores
situados por debajo de la posición 6:
Valores mostrados:
9 (número contenido en la posición 6)
1 (valor en la posición 7)
3 (valor de la posición 5)
8 (valor de la posición 8)
6 (valor de la posición 4)
9 (valor de la posición 9)
8 (valor de la posición 3)
Ojo: Tendremos que controlar que el número tenga 3 valores a derecha e izquierda, es decir,
que no nos salgamos del array buscando valores, como por ejemplo, si el número aleatorio es
un 1, no mostraremos nada. Será solo en caso de que existan esos 3 valores a ambos lados.
Ojo: Si por ejemplo sale el número 1, sí se realizaría el ejercicio mostrando los 3 valores de las
posiciones superiores (posiciones 2,3 y 4) pero solo 1 inferior (el de la posición 0).
Os pongo lo que llevo de código, que es la primera parte pero no consigo hacer el resto.
public class Prog05_Ejer1 {
public static void main(String[] args) {
int[] rango = new int[20];
int[] generado = new int[20];
int numAleatorio;
int posicion = 0;
numAleatorio = (int) (Math.random() * (19 + 1));
System.out.println(numAleatorio);
for (int i = 0; i < rango.length; i++) {
rango[i] = (int) (Math.random() * (10 - 1 + 1) + 1);
if (numAleatorio == i) {
posicion = posicion + i;
}
System.out.print(rango[i] + " ");
}
System.out.println("");
System.out.println(rango[posicion]);
}
}