так что я не знаю, что за исправление?
Я не собираюсь рассказывать вам исправление.Более важно, чтобы вы поняли, в чем ваш ответ неправильный ... чтобы вы могли учиться на своих ошибках.
Итак, давайте вернемся назад.
Формула для вычисления среднего значения набораиз чисел:
среднее значение = общая сумма всех чисел / количества предметов в наборе.
(Вы должны были изучить это в математике средней школы, еслине раньше!)
Теперь давайте сравним это с тем, что вы делаете в своем коде:
int grade = inputFile.nextInt();
double average = grade/8;
System.out.println("The average is " + average);
Что с этим не так?
Проблема № 1:
Вы не вычисляете сумму всех чисел.grade
- это значение, которое вы только что прочитали.Не сумма.(Суммирование означает, что вам нужно сложить оценки!)
Задача № 2:
Вы предполагаете, что количество предметов равно 8:
Если файл не содержит 8 элементов, это не так.
Когда вы вычисляете и выводите скользящее среднее (как вы делаете в настоящее время), вы должны делиться на количество прочитанных элементов до сих пор .
Подсказка: подсчитайте их.
Задача № 3:
Эта проблема немного сложнее.
Поскольку grade
- целое число, 8
- целое число, grade / 8
- целочисленное деление.Это означает, что результат урезан.Например, 60 / 8
дает вам 7
... не 7.5
.
Если вы хотите получить точный результат с плавающей запятой, вам нужен один из операндов оператора /
, чтобы быть плавающимстоимость балла.Например,
int sum = 60;
int count = 8;
double average = sum / count; // INCORRECT answer - `7.0`
double average = ((double) sum) / count; // CORRECT answer - `7.5`
Если вы понимаете 3 проблемы, описанные выше, вы сможете выяснить, как их решить, и заставить вашу программу работать.