Desde la función principal tendrás que crear un array de 10 elemento y los inicializas con valores aleatorias entre 1 y 100. Ahora tendrás que pedir al usuario la posición que desea eliminar del array y hacer una llamada a la función "elimina" pasándole el array y la posición para que elimine el elemento que hay en dicha posición.
Imprime el contenido del array antes y después de la llamada a la función "elimina".
Ejemplo:
Array inicial:
Introduce posición:
> 5
Array después de haber eleminado la posición 5:
| 15 | 5 | 2 | 90 | 78 | 45 | 32 | 87 | 47 | 5 |
Introduce posición:
> 5
Array después de haber eleminado la posición 5:
| 15 | 5 | 2 | 90 | 45 | 32 | 87 | 47 | 5 |
SOLUCIÓN EN JAVA:
package eliminaelemento;
import java.util.Arrays;
import javax.swing.JOptionPane;
public class EliminaElemento {
static int[] elimina(int[] lista, int posicion){
int []nuevaLista=new int[lista.length-1];
int i;
//Primero copio los elementos que hay antes de posición en el nuevo array
for (i=0;i < posicion-1;i++){
nuevaLista[i]=lista[i];
}
//Y ahora copio los elementos que hay detras de posición en el nuevo array
//de este forma el único elemento que no copio es el que hay en la posición "posicion"
for (i=posicion;i < lista.length;i++){
nuevaLista[i-1]=lista[i];
}
return nuevaLista;
}
public static void main(String[] args) {
int[] lista=new int[10];
int i, posicion;
//Genero los 10 números aleatorios para el array
for (i=0;i < lista.length;i++){
lista[i]=(int)(Math.random()*100+1);
}
//Muestro el array inicial
System.out.println("Array inicial: "+Arrays.toString(lista));
System.out.println();
try {
//Pido al usuario la posición
posicion=Integer.parseInt(JOptionPane.showInputDialog("Introduce la posición del elemento que quieres eliminar:"));
//llamo a la función para que elimine dicha posición
lista=elimina(lista,posicion);
//Vuelvo a imprimir la lista
System.out.println("Array después de haber eliminado la posición "+posicion+": "+Arrays.toString(lista));
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Formato incorrecto");
}
}
}
No hay comentarios:
Publicar un comentario