Как ввести символ, чтобы остановить цикл - PullRequest
0 голосов
/ 28 сентября 2019

Мне нужно написать код, который вычисляет среднее значение входных данных (int), введенных пользователем.Однако проблема в том, что мне также нужно разрешить пользователю вводить столько вводов, сколько они хотят, и останавливаться при вводе символа (буквы).

Я могу решить эту проблему, если был заданный предел Iможно использовать, но поскольку предел может быть любым, у меня возникают проблемы при написании формулы, которая может вычислить среднее значение, поскольку число входов может различаться для любого пользователя.

import java.util.Scanner;

public class AvgGrades {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter as many student grades as you like. Enter a character to stop.");
        float total=0, avg;
        int grades = input.nextInt();

        for (int i = 0; i < grades.length; i++) {
            grades[i] = input.nextInt();
            total = total + grades[i];
        }
        input.close();
        avg = total/grades.length;
        System.out.println("Average student grade is "+avg);





    }

    }

Входные данные: 30,0 45,6 23,878,75 90 92 67,5 10,65 88 c Выходные данные должны быть следующими: Введите столько оценок учащихся, сколько хотите.Введите символ для остановки.Средний балл студента: 58.477777777777774

Мой вывод таков: код просто не запускается.

1 Ответ

1 голос
/ 28 сентября 2019

Вот эскиз процесса.Я оставлю для вас детали превращения этого в законченную программу.

float total = 0;
int count = 0;
while (scanner.hasNextFloat()) {
    float num = scanner.nextFloat();
    total += num;
    count++;
}
float average = total / count;

Вам не нужно хранить отдельные номера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...