JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Всё считает правильно !! почему не проходит проверку
Дмитрий
19 уровень
  • 08.07.2020
  • 343просмотров
  • 3комментариев

Всё считает правильно !! почему не проходит проверку

Вопрос по задаче Среднее арифметическое
Java Syntax,  5 уровень,  5 лекция
Обсуждается


Вводить с клавиатуры числа и вычислить среднее арифметическое.
Если пользователь ввел -1, вывести на экран среднее арифметическое всех чисел и завершить программу.
-1 не должно учитываться.

Примеры:
а) при вводе чисел
1
2
2
4
5
-1
получим вывод
2.8

б) при вводе чисел
4
3
2
1
-1
получим вывод
2.5

Подсказка: один из вариантов решения этой задачи, использовать конструкцию:

while (true) {
    int number = считываем число;
    if (проверяем, что number -1)
        break;
}

Требования:
  • Программа должна считывать данные с клавиатуры.
  • Программа должна выводить данные на экран.
  • После ввода -1 программа должна корректно завершить работу.
  • Если последовательно ввести: 1, 2, 2, 4, 5 и -1, программа должна вывести 2.8.
  • Если последовательно ввести: -100, 0, 100 и -1, программа должна вывести 0.0.
  • Если последовательно ввести: 1 и -1, программа должна вывести 1.0.
  • Выведенный результат должен соответствовать заданию для любых входных данных.
package com.javarush.task.task05.task0507; /* Среднее арифметическое */ import java.io.BufferedReader; import java.io.InputStreamReader; public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int a=0 ; int b=0 ; int d=0 ; int g=0 ; double c=0; while (true) { a = Integer.parseInt(reader.readLine()); b = Integer.parseInt(reader.readLine()); d = Integer.parseInt(reader.readLine()); g = Integer.parseInt(reader.readLine()); c = Double.parseDouble(reader.readLine()); { if (c== -1) c=a+b+d+g; c=c/4; break; } } System.out.println(c); //напишите тут ваш код } }
0
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр Альпидовский
Уровень 16
17 июля 2020, 11:52

После чтения буфера достаточно добавить три переменные:

  • сумма чисел,
  • счетчик чисел,
  • результат их деления друг на друга, конвертирующийся в число с плавающей точкой (float).

В цикле один раз считываем число, сразу условием if проверяем, не равно ли оно -1. Если равно, сразу break.

Если не равно -1, прибавляем на единицу счетчик и введенное число к самому себе.

После цикла выводим результат деления, который float.

0
(@__@)
Уровень 39
8 июля 2020, 16:11
а если мне надо ввести с клавиатуры три числа? или 9?
+1
юрий
Уровень 11
11 июля 2020, 23:08
согласен, есть смысл переписать с учетом масштабируемости.
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush