Ejercicio E terminado

This commit is contained in:
2024-10-25 13:30:40 +02:00
parent 7dc1918355
commit 01c9009e1a

View 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;
}
}