Массивы для отслеживания буквенных оценок

#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