Ejercicio E terminado
This commit is contained in:
68
src/main/java/examenes/examen20241025/Ejercicio_e.java
Normal file
68
src/main/java/examenes/examen20241025/Ejercicio_e.java
Normal file
@@ -0,0 +1,68 @@
|
||||
package examenes.examen20241025;
|
||||
|
||||
import static examenes.examen20241025.utils.Utils.*;
|
||||
|
||||
public class Ejercicio_e {
|
||||
public static void main(String[] args) {
|
||||
|
||||
//Creo un array aleatorio
|
||||
int[] arrayAleatorio = crearArrayNumsAleatorios(20, 0, 100);
|
||||
|
||||
//Muestro el array normal
|
||||
System.out.println("Este es el array generado:");
|
||||
mostrarArrayNums(arrayAleatorio);
|
||||
|
||||
//Muestro solo los picos
|
||||
System.out.println("\nEstos son los picos del array:");
|
||||
mostrarArrayNums(buscarPicos(arrayAleatorio));
|
||||
}
|
||||
|
||||
public static int[] buscarPicos(int[] array) {
|
||||
//Creo un contador para después saber de qué tamaño hacer el array a devolver
|
||||
int picosEncontrados = 0;
|
||||
|
||||
//Duplico el array para que las comparaciones se hagan sin problemas
|
||||
int[] arrayDuplicado = new int[array.length];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
arrayDuplicado[i] = array[i];
|
||||
}
|
||||
|
||||
//Recorro todo el array
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
//Para apuntarlos los pongo negativos en un array aparte
|
||||
|
||||
//Si estamos al principio solo comparo con el de al lado
|
||||
if (i == 0) {
|
||||
if (array[i] > array[i + 1]) {
|
||||
arrayDuplicado[i] *= -1;
|
||||
picosEncontrados++;
|
||||
}
|
||||
//Si estamos al principio solo comparo con el del final
|
||||
} else if (i == (array.length - 1)) {
|
||||
if (array[i] > array[i - 1]) {
|
||||
arrayDuplicado[i] *= -1;
|
||||
picosEncontrados++;
|
||||
}
|
||||
//En otro caso comparo en los dos lados
|
||||
} else {
|
||||
if (array[i] > array[i - 1] && array[i] > array[i + 1]) {
|
||||
arrayDuplicado[i] *= -1;
|
||||
picosEncontrados++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Creo el array con el tamaño necesario
|
||||
int[] arrayPicos = new int[picosEncontrados];
|
||||
int contadorIndice = 0;
|
||||
|
||||
//Voy buscando los negativos y los añado al array nuevo como positivos
|
||||
for (int i = 0; i < arrayDuplicado.length; i++) {
|
||||
if (arrayDuplicado[i] < 0) {
|
||||
arrayPicos[contadorIndice] = (arrayDuplicado[i] * -1);
|
||||
contadorIndice++;
|
||||
}
|
||||
}
|
||||
return arrayPicos;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user