Я пытаюсь напечатать наибольшее значение из набора массивов, но я продолжаю получать ошибку за пределами границ. Я не уверен, как именно это исправить. Вот мой код:Наибольшее значение в Java
Scanner console = new Scanner(System.in);
System.out.print("Please enter the name of the input file: ");
String inputFileName = console.nextLine();
Scanner in = null;
try {
in = new Scanner(new File(inputFileName));
} catch (FileNotFoundException e) {
System.out.print("Error!");
e.printStackTrace();
}
int n = in.nextInt();
double[] array = new double[n];
for (int i = 0; i < array.length; i++) {
array[i] = in.nextDouble();
}
console.close();
double largest = array[n]; // Exception occurs here
for (int i = 0; i < n; i++) {
if (array[i] > largest) {
largest = array[i];
}
}
System.out.println("The largest value in the data is: " + largest);
Любая помощь с благодарностью.
новобранец ошибке с моей стороны:/спасибо, спасибо !! – coscdummy
Это может привести к ошибке 'ArrayIndexOutOfBoundsException', если массив имеет нулевую длину. Безопасной альтернативой для всех длин массивов будет 'double most = Double.NEGATIVE_INFINITY' (или проверка того, что массив не имеет нулевой длины, конечно). –
@AndyTurner или вы можете добавить проверку, которая требует, чтобы n было положительным, поскольку в противном случае весь этот код бессмыслен. – Eran