Как найти заданное пользователем число в массиве?

191
22 ноября 2021, 17:40

/** Returns the index of the first occurrence of the array element with the given value.

  • The search for the element is started at the given start index to the end of the array.
  • @param a an integer array
  • @param begin the index in the array, where to start the search (begin included)
  • @param value an integer value to be searched in the array *
  • @return the index of the first element with the given value, -1 if value could
  • not be found

static int getPosition(int[] a, int begin, int value)

public static void main(String[] args) {
int n;
System.out.println("Введите длину Массива");
n = SavitchIn.readInt();
int [] test = new int [n];

for (int i = 0; i < test.length; i++){ // запустили все индексы
test[i] = ((int)(Math.random()*100000)); //все числа в массиве могут быть рандомными
getPosition(test, 3351 ,65732); /* потом мы должны протестить
функцию  и если в нашем массиве 
Test оказывается 3351 или же 65732,
то функция должна вывести или вернуть 
позицию на котором находятся эти цифры*/
}
пример
 test [3, 1, 10, 7, 9] 
getPosition(test, 2, 9) returns 4 - в данном случае на 4 позиции 
getPosition(test, 0, 5) returns -1 - если же такого числа нет в массиве.

Заранее всем благодарен за любую помощь!))
Answer 1

Судя по вашему комментарию к строке getPosition(test, 3351, 65732);, вы неправильно поняли назначение второго аргумента.

3351 - это не одно из искомых чисел, а индекс элемента массива с которого следует начинать поиск (@param begin the index in the array, where to start the search (begin included)).

А метод getPosition() будет выглядеть так:

public class FemaleLogic {
    static int getPosition(int[] a, int begin, int value) {
        for (int i = begin; i < a.length; i++) {
            // если элемент найден, возвращается его индекс
            if (a[i] == value) return i; 
        }
        return -1; // если элемент не найден, возвращается -1
    }
    public static void main(String[ ] args){
        int[] arr = {5, 8, 6, 23, 1, 9, 4, 7, 8, 2, 5};
        System.out.println(getPosition(arr, 0, 23));
        System.out.println(getPosition(arr, 5, 23));
    }
}

Результат:

3

-1

READ ALSO
Необходимость Buffered Stream в Java

Необходимость Buffered Stream в Java

Всегда ли лучше использовать BufferedStream вместо обычного IOStream? В каких ситуациях лучше не использовать Buffered?

91
Сравнить две коробки. Что не так?

Сравнить две коробки. Что не так?

На столе две коробки

175
Spring работа со сторонним API

Spring работа со сторонним API

Изучаю Spring и вот хочу реализовать работу с методами внешнего API

181