#arrays
#массивы
Вопрос:
Нужна помощь в написании программы. Я не могу понять, как добавить в определенный массив. Ниже приведена программа, которую я должен написать. Любая помощь будет оценена.
Напишите приложение, которое будет использовать одномерный массив. Попросите пользователя ввести ряд числовых оценок (оценка -1 завершит ввод). Создайте одномерный массив для отслеживания диапазонов оценок. Например:
Индекс 0 представляет оценки в диапазоне от 90 до 100 Индекс 1 представляет оценки в диапазоне от 80 до 89 Индекс 2 представляет оценки в диапазоне от 70 до 79 Индекс 3 представляет оценки в диапазоне от 60 до 69 Индекс 4 представляет оценки в диапазоне от 59 или ниже
Отображение количества A, B, C, D и F; также отображаются средняя, самая высокая и самая низкая оценка. Вот как должна выглядеть ваша программа:
Введите числовую оценку (0-100) или -1, чтобы выйти: 90
Введите числовую оценку (0-100) или -1, чтобы выйти: 82
Введите числовую оценку (0-100) или -1, чтобы выйти: 96
Введите числовую оценку (0-100) или -1, чтобы выйти: -1
Количество оценок A: 2
Количество оценок B: 1
Количество оценок C: 0
Количество общих оценок: 0
Количество F оценок: 0
Среднее значение: 89,33
Самая высокая оценка: 96
Самая низкая оценка: 82
Ответ №1:
Я знаю, что есть лучший способ сделать это, например, разбить проблему на отдельные методы и, таким образом, значительно упростить отладку / обслуживание вашего кода, но вот как я это сделал, не используя никаких методов.
public static void main(String[] args) {
final int SIZE = 100;
int[] array = new int[SIZE];
int count = 0;
int ans;
int[] gradeRange = {0, 0, 0, 0, 0};
double total = 0;
double average = 0;
int highest = array[0];
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a numeric grade (0-100) or -1 to quit:");
ans = keyboard.nextInt();
while (ans != -1 amp;amp; count < array.length) {
array[count] = ans;
count ; //counter used to keep track of the array length
if (ans >= 90) {
gradeRange[0] ;
}
else if (ans >= 80) {
gradeRange[1] ;
}
else if (ans >= 70) {
gradeRange[2] ;
}
else if (ans >= 60) {
gradeRange[3] ;
}
else if (ans < 60) {
gradeRange[4] ;
}
System.out.println("Enter a numeric grade (0-100) or -1 to quit:");
ans = keyboard.nextInt();
}
int[] secarray = new int[count];
for (int index = 0; index < count; index ) {
secarray[index] = array[index];
}
int min = secarray[0];
for (int index = 0; index < count; index ) {
total = array[index];
average = total / count;
}
for (int index = 0; index < count; index ) {
if (array[index] > highest)
highest = array[index];
}
for (int index = 1; index < secarray.length; index ) {
if (secarray[index] < min)
min = secarray[index];
}
System.out.println("Number of A grades: " gradeRange[0]);
System.out.println("Number of B grades: " gradeRange[1]);
System.out.println("Number of C grades: " gradeRange[2]);
System.out.println("Number of D grades: " gradeRange[3]);
System.out.println("Number of F grades: " gradeRange[4]);
System.out.printf("Average is: %.1fn ", average);
System.out.println("Lowest grade is: " min);
System.out.println("Highest grade is: " highest);
}//end main