Я работаю над программой, которая получит пользовательский ввод, а затем сохранит его в массиве. Затем он будет искать массив, чтобы узнать, является ли введенный пользователем номер дублирующимся или нет. По какой-то причине binarySearch не обнаруживает дублирование.Двоичный поиск в массиве не работает
Мой код:
import java.util.Arrays;
import java.util.Scanner;
public class Duplicate_Elimination
{
public static void main(String[] args)
{
int [] numbers = new int[5]; // create an array
Scanner input = new Scanner(System.in); // create a Scanner
// Ask user for 5 numbers
for (int i = 0; i < 5; i++)
{
// ask user to type the number
System.out.printf("Please type number %d:",i+1);
int number = input.nextInt(); // get user input and store it in number variable
// check if the number entered is already stored
int location = Arrays.binarySearch(numbers,number);
// store the value inside number variable in numbers array
numbers[i] = number;
showArray(numbers);
// if there is any similarity between numbers, print error message
if (location >= 0)
System.out.printf("%s%n","error");
} // end for
}
// this method will show what's in the array
public static void showArray(int[] numbers)
{
System.out.printf("%n%n"); // print black spaces
// print all the numbers stored in the array
for(int digit: numbers)
{
System.out.printf("%d",digit);
}
System.out.printf("%n"); // print black space
}
}
Я попытался меня зависящее, чтобы решить, но, когда я когда-либо типа 1, как и все мои числа, это только показывает дублирование после ввода как 3 номера. Он должен обнаруживать дублирование после каждой записи. Не могли бы вы помочь мне выяснить, что не так с моим кодом. Я буду очень благодарен.
Спасибо!
бинарный поиск требует вашего массива sorted- не похож, что в случае – Sarang
ли требование использовать массив двоичного поиска? – wvdz
На самом деле я ничего не могу использовать. Но я не нашел ничего, чтобы использовать, поэтому я использовал Массивы. – Deep