Bom, primeiro acho que você deve ir por partes. Acho melhor tambem voce tentar fazer sem auxilio do Array.binarySearch, pois te ajuda a pensar mais, e entender melhor o problema, se voce usa-lo e não entender como ele funciona, é melhor voce mesmo fazer na ‘unha’. Primeiro tente executar o programa da forma correta, se tiver ok, blz, então para a proxima etapa. Voce quer saber em qual posicao do vetor está determinado numero?
Tente isso:
public static void main(String[] args) {
Scanner entrada = new Scanner(<a href="http://System.in">System.in</a>);
int vet[] = new int[5];
for (int i = 0; i < 5; i++) {
System.out.println(“Informe o numero na posicao “+i+” do vetor”);
vet[i] = entrada.nextInt();
}
System.out.println("Informe numero a encontrar no vetor");
int busca = entrada.nextInt();
for (int i = 0; i < 5; i++) {
if (busca == vet[i]) {
System.out.println("O numero "+busca+" está na posicao "+i+" do vetor");
}
}
}
Agora quer saber os numeros repetidos? Tente isso:
{ public static void main(String args[])
{ Scanner entrada = new Scanner(<a href="http://System.in">System.in</a>);
int a[] = new int[10], repetidos[] = new int[10], vezes[] = new int[10];
int i, j, qtde, cont, cont_r;
for (i=0; i<10; i++)
{
System.out.print(“Digite numero na posicao” + (i) + " do vetor");
a[i] = entrada.nextInt();
}
cont_r = 0;
for (i=0; i<10; i++)
{ qtde = 1;
for (j=0; j<i; j++)
{ if (i != j)
{ if (a[i] == a[j])
qtde = qtde + 1;
}
}
if (qtde > 1)
{ cont = 0;
while (cont < cont_r && a[i] != repetidos[cont])
{
cont = cont + 1;
}
if (cont == cont_r)
{ repetidos[cont_r] = a[i];
vezes[cont_r] = qtde;
cont_r = cont_r + 1;
}
else
vezes[cont] = vezes[cont]+1;
}
}
for (i=0; i<cont_r; i++)
{ System.out.println("O numero " + repetidos[i] + " apareceu " + vezes[i] + " vezes");
}
}
Agora você mesmo pode tentar modifca-lo/altera-lo para encontrar as posições dos numeros repetidos.