Почему вводится в массиве при сортировке только 3 числа при вводе с клавиатуры пяти?
Ввожу с клавиатуры 5 чисел, но при сортировке массива первые 2 — это нули. В чем проблема?
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] count = new int[5];
for(int i = 0; i < count.length; i++) {
count[i] = Integer.parseInt(reader.readLine());
Arrays.sort(count, 0, 5);
}
Ответы (1 шт):
Автор решения: Имя Фамилия
→ Ссылка
Вы сортируете пять раз: каждый раз, когда вводите новое число. Сортировать нужно один раз после цикла for.
for(int i = 0; i < count.length; i++)
count[i] = Integer.parseInt(reader.readLine());
Arrays.sort(count, 0, 5);
Также я бы не рекомендовал использовать BufferedReader в вашем случае, его стоит использовать при работе с большим количеством входных данных. Для пользовательского ввода есть гораздо более удобный класс Scanner. Вдобавок, чтобы ввести число в вашей программе, необходимо нажимать Enter после каждого ввода числа. Обычно входные данные можно разделять пробелами. Приведу пример того, как это можно бы сделать с BufferedReader и со Scanner:
for(int i = 0; i < count.length;) {
String s = reader.readLine();
String[] ss = s.split("\\s+");
for (int j = 0; j < ss.length && i < count.length; j++, i++)
count[i] = Integer.parseInt(ss[j]);
}
for(int i = 0; i < count.length; i++)
count[i] = scanner.nextInt();