Crea una función "buscarSiguiente" que reciba tres parámetros:
- un array de números enteros
- una posición dentro del array
- el número que se desea buscar en el array a partir de dicha posición
La función devolverá:
- un número que indicará la posición del número que se busca, si es que está a partir de la posición dada
- un -1 si no lo encuentra a partir de la posición dada
Desde la función principal tendrás que crear un array de 20 números enteros aleatorios entre 1 y 10, pedir al usuario un número del 1 al 10 y mostrar en la pantalla las posiciones dentro del array que ocupa dicho número utilizando llamadas sucesivas a la función creada.
Ejemplo:
Introduzca un número del 1 al 10:
> 5
Dentro del array :[1, 9, 6, 9, 9, 3, 6, 1, 8, 9, 5, 8, 2, 5, 2, 1, 8, 9, 6, 10]
El número 5 está en las siguientes posiciones:
Posición: 10
Posición: 13
> 5
Dentro del array :[1, 9, 6, 9, 9, 3, 6, 1, 8, 9, 5, 8, 2, 5, 2, 1, 8, 9, 6, 10]
El número 5 está en las siguientes posiciones:
Posición: 10
Posición: 13
SOLUCIÓN EN JAVA:
package buscararray; import java.util.Arrays; import javax.swing.JOptionPane; public class BuscarArray { static int buscarSiguiente(int[] vector, int posicion, int numero){ int i; boolean encontrado=false; //Recorro el array a partir de la posición que me indican en el parámetro //y me detengo cuanto he encontrado el número buscado //o cuando llego al final del array //Devolveré la posición del número buscado si es que está o //-1 para indicar que no se ha encontrado dicho número for (i=posicion ; encontrado==false && i < vector.length; i++){ if (vector[i]==numero) encontrado=true; } if (encontrado) return i; else return -1; } public static void main(String[] args) { int[] vector=new int[20]; int posicion=0; int numero=0;//Este es el número que se desea buscar for (int i=0;i < vector.length;i++){ vector[i]=(int)(Math.random()*10+1); } try { numero=Integer.parseInt(JOptionPane.showInputDialog("Introduzca número a buscar")); } catch (NumberFormatException e){ JOptionPane.showMessageDialog(null, "Error de formato"); System.exit(0); } System.out.println("Dentro del array :"+Arrays.toString(vector)); System.out.println("El número "+numero+" está en las siguientes posiciones:"); do{ posicion=buscarSiguiente(vector,posicion,numero); if (posicion!=-1) System.out.println("Posición: "+(posicion-1)); } while (posicion!=-1); } }
No hay comentarios:
Publicar un comentario