Заголовок, следующий код ничего не делает в java ...
public void set(int n, int value) {
n = value;
}
Вы, кажется, пишете такой код во многих функциях, где должно быть возвращено значение.
Например, определение функции:
static void fillArrayWithUserInt(int[] integerArray, int arraySize, int arrayValues, int n)
Должно быть действительно записано как:
static int[] fillArrayWithUserInt()
Это может быть реализовано следующим образом
public static int[] fillArrayWithUserInt() {
Scanner sc = new Scanner(System.in);
System.out.println("How big will the array be?");
int arraySize = sc.nextInt();
sc.nextLine(); // clears rest of input, including carriage return
int[] integerArray = new int[arraySize];
System.out.println("Enter the " + arraySize + " numbers now.");
System.out.println("What are the numbers in your array?");
for (int i = 0; i < integerArray.length; i++) {
integerArray[i] = sc.nextInt();
}
return integerArray;
}
Приведенная выше функция запросит у пользователя размер массива. Создайте массив с заданным размером. Затем предложите пользователю заполнить массив правильным количеством значений. Затем возвращается массив, созданный в этом процессе.
Теперь все, что вы должны обрабатывать иначе, - это найти значение для сравнения. Это должно быть сделано вне функции fillArrayWithUserInt
.
Примерно так:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] array = fillArrayWithUserInt();
displayArray(array);
System.out.println("To which number would you like to compare the rest? Your n value is: ");
int n = sc.nextInt();
printGreaterThanN(array, n);
}
Наконец, вам не нужно объявлять переменные stati c в верхней части вашего класса.
Эти строки могут быть удалены:
//initialize n
static int n;
static int arraySize;
//setup the array
static int [] integerArray = new int [] {};