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