Обратите внимание, что первый элемент массива хранится с индексом 0
и, следовательно, последний элемент хранится с индексом, array.length - 1, т.е. ваш l oop должен завершиться до того, как index = array.length.
Сделайте это следующим образом:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int NUM_SCORES = 15;
int[] listOfScores = new int[NUM_SCORES];
int min, max;
double average;
Scanner in = new Scanner(System.in);
// Get the first integer and assign it to min, max and average
listOfScores[0] = getInt(in);
min = listOfScores[0];
max = listOfScores[0];
average = listOfScores[0];
// Get the remaining integers and process min, max and average
for (int i = 1; i < listOfScores.length; i++) {
listOfScores[i] = getInt(in);
if (listOfScores[i] > max) {
max = listOfScores[i];
}
if (listOfScores[i] < min) {
min = listOfScores[i];
}
average = (average * i + listOfScores[i]) / (i + 1);
}
// Display the numbers
System.out.print("Numbers are: ");
for (int i = 0; i < listOfScores.length; i++) {
System.out.print(listOfScores[i] + " ");
}
System.out.println();
// Display the result
System.out.println("Minimum: " + min);
System.out.println("Maximum: " + max);
System.out.println("Average: " + average);
}
private static int getInt(Scanner in) {
int input;
// Check if the integer is in the range of 1 to 100
do {
System.out.print("Enter in an integer (from 1 to 100): ");
input = in.nextInt();
if (input < 1 || input > 100) {
System.out.println("Error: Invalid integer.");
}
} while (input < 1 || input > 100); // Loop back if the integer is not in the range of 1 to 100
// If yes, return the number
return input;
}
}
Пробный прогон для NUM_SCORES = 3:
Enter in an integer (from 1 to 100): 200
Error: Invalid integer.
Enter in an integer (from 1 to 100): -1
Error: Invalid integer.
Enter in an integer (from 1 to 100): 5
Enter in an integer (from 1 to 100): 300
Error: Invalid integer.
Enter in an integer (from 1 to 100): 10
Enter in an integer (from 1 to 100): -1
Error: Invalid integer.
Enter in an integer (from 1 to 100): 15
Numbers are: 5 10 15
Minimum: 5
Maximum: 15
Average: 10.0
Примечание: Для простоты и избежания избыточного кода я реорганизовал пользовательский ввод в отдельный метод getInt
. Вы можете обойтись без создания отдельного метода для него, но, как я уже упоминал, это привнесет избыточность в ваш код.