JavaRush
AI Academy
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/не проходит валидацию. Показывает ошибку "Программа должн...
Владимир
18 уровень
  • 09.10.2017
  • 1584просмотров
  • 10комментариев

не проходит валидацию. Показывает ошибку "Программа должна вывести сообщение "В домах с четными номерами проживает больше жителей.", если сумма четных элементов массива больше суммы нечетных."

Вопрос по задаче Улица и дома
Java Syntax,  7 уровень,  4 лекция
Архивный

1. Создать массив на 15 целых чисел.
2. Ввести в него значения с клавиатуры.
3. Пускай индекс элемента массива является номером дома, а значение - числом жителей, проживающих в доме.
Дома с нечетными номерами расположены на одной стороне улицы, с четными - на другой. Выяснить, на какой стороне улицы проживает больше жителей.
4. Вывести на экран сообщение: "В домах с нечетными номерами проживает больше жителей." или "В домах с четными номерами проживает больше жителей."

Примечание:
дом с порядковым номером 0 считать четным.

Требования:
  • Программа должна создавать массив на 15 целых чисел.
  • Программа должна считывать числа для массива с клавиатуры.
  • Программа должна вывести сообщение "В домах с нечетными номерами проживает больше жителей.", если сумма нечетных элементов массива больше суммы четных.
  • Программа должна вывести сообщение "В домах с четными номерами проживает больше жителей.", если сумма четных элементов массива больше суммы нечетных.
  • Программа не должна выводить текст в консоль, если количество жителей на каждой стороне - одинаковое.
....
package com.javarush.task.task07.task0706; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /* Улицы и дома */ public class Solution { static int a; static int b; public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int[] list = new int[15]; for (int i = 0; i < list.length; i++) { String s = reader.readLine(); list[i] = Integer.parseInt(s); } for (int i = 0; i<list.length; i +=2){ a += list[i]; } for (int i = 1; i<list.length; i +=2){ b += list[i]; } if(b>a){ System.out.println("В домах с нечетными номерами проживает больше жителей."); } else if(a>b){ System.out.println("В домах с четными номерами проживает больше жителей."); } //напишите тут ваш код } }
0
Комментарии (10)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Slaby
Уровень 35
28 мая 2020, 19:45
В моем случае я объявил переменные-счетчики как short, зная, что их диапазон входит в int, в IDEA все работало, а валидатор не принимал, пока не сменил их тип на int.
0
Андрей Святогоров
Уровень 38
10 октября 2017, 03:03
есть ещё одно предположение, частенько сталкивался, если в выводе есть мелкое несоответствие, то валидатор тоже не принимает решение, как правило, помогает скопировать текст из условия или из комментария ментора.
0
--------
Уровень 40
Master
9 октября 2017, 19:35
Возможно, дело в том, что в случае равенства сумм на экран ничего не будет выводиться. Я бы второе if убрал, оставил просто else
0
Владимир
Уровень 18
9 октября 2017, 19:46
оставил просто else. Результат тот же(((.
0
--------
Уровень 40
Master
9 октября 2017, 20:04
Тогда еще можно еще попытаться поменять местами проверку условий, т.е.:
if(a>b){
    System.out.println("В домах с четными номерами проживает больше жителей.");
} else {
    System.out.println("В домах с нечетными номерами проживает больше жителей.");
}
У меня валидатор принял в свое время именно с такими условиями проверки, хоть и немного по-другому, без if-else))
0
Владимир
Уровень 18
9 октября 2017, 20:19
Поменял. Не помогло........
0
--------
Уровень 40
Master
9 октября 2017, 20:35решение
А если а и b сделать не статическими? И объявить внутри main, а не для всего класса
+8
Сергеев Виктор
Уровень 40
Master
10 октября 2017, 00:08
верно подмечено, переменные используются локально, они должны принадлежать методу, а не классу
+3
Владимир
Уровень 18
10 октября 2017, 09:18
Да, так получилось.. Спасибо за помощь))) public static void main(String[] args) throws Exception { int a = 0; int b = 0;
+1
Алексей ЗятнинFull Stack Developer в фриланс
24 мая 2020, 18:45
+ 1 Прям как в жизни валидатор пишет одну ошибку, а в итоге проверяет совсем другое =)
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush