JavaRush
AI Academy
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Не могу понять почему не проходит валидация?
Dorin Vrabie
2 уровень
  • 05.09.2023
  • 265просмотров
  • 5комментариев

Не могу понять почему не проходит валидация?

Вопрос по задаче Положительные и отрицательные числа
Java Syntax,  4 уровень,  7 лекция
Решен


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

Пример:
а) при вводе чисел
2
5
6
получим вывод
количество отрицательных чисел: 0
количество положительных чисел: 3

Пример:
б) при вводе чисел
-2
-5
6
получим вывод
количество отрицательных чисел: 2
количество положительных чисел: 1

Требования:
  • Программа должна считывать числа c клавиатуры.
  • Программа должна выводить текст на экран.
  • Программа должна выводить количество отрицательных чисел в исходном наборе.
  • Программа должна выводить количество положительных чисел в исходном наборе.
  • Если отрицательных чисел нет, программа должна вывести "количество отрицательных чисел: 0".
  • Если положительных чисел нет, программа должна вывести "количество положительных чисел: 0".
  • Учесть, что число "0" не относится ни к положительным, ни к отрицательным числам.
....
package com.javarush.task.task04.task0429; 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 = Integer.parseInt(reader.readLine()); int b = Integer.parseInt(reader.readLine()); int c = Integer.parseInt(reader.readLine()); if (((a >= 1 && b >= 1) && c >= 1)) { System.out.println("количество отрицательных чисел: 0"); System.out.println("количество положительных чисел: 3"); } else if (((a >= 1 && b >= 1) && c <= -1) ||((a >= 1 && b <= -1 ) && c >=1 ) || ((a <= -1 && b >= 1 ) && c >= 1 )) { System.out.println("количество отрицательных чисел: 1"); System.out.println("количество положительных чисел: 2"); } else if (((a >= 1 && b <= -1) && c <= -1) ||((a <= -1 && b <= -1 ) && c >=1 ) || ((a <= -1 && b >= 1 ) && c <= -1 )) { System.out.println("количество отрицательных чисел: 2"); System.out.println("количество положительных чисел: 1"); }else if (((a <= -1 && b <= -1) && c <= -1) ||((a <= -1 && b <= -1 ) && c <= -1 ) || ((a <= -1 && b <= -1 ) && c <= -1 )){ System.out.println("количество отрицательных чисел: 3"); System.out.println("количество положительных чисел: 0"); }else { System.out.println("количество отрицательных чисел: 0"); System.out.println("количество положительных чисел: 0"); } } }
0
Комментарии (5)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Dorin Vrabie
Уровень 2
6 сентября 2023, 18:01
Спасибо. Понял где ошибся.
0
Денис Enterprise Java Developer
6 сентября 2023, 09:59решение
Слушай, ну если тебе заранее известно сколько чисел будет введено и тебе точно не нужно их хранить, ведь просто нужно посчитать количество отрицательных и положительных... зачем вообще вся эта простыня? Куда как проще ведь можно: ввёл, проверил что число больше или меньше нуля, инкрементнул нужный счётчик.
int positive = 0;
int negative = 0;
for (int i = 0; i < 3; i++) {
    int num = Integer.parseInt(reader.readLine());
    if (num > 0) {
        positive++;
    } else if (num < 0) {
        negative++;
    }
}
System.out.println("количество отрицательных  чисел: " + negative);
System.out.println("количество положительных  чисел: " + positive);
И не надо всего этого ужаса с условиями, хардкодом и повторениями строк вывода. А если использовать класс Scanner то и парсить интеджеры не нунжо
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int positive = 0;
    int negative = 0;
    for (int i = 0; i < 3; i++) {
        int num = scanner.nextInt();
        if (num > 0) {
            positive++;
        } else if (num < 0) {
            negative++;
        }
    }
    System.out.println("количество отрицательных  чисел: " + negative);
    System.out.println("количество положительных  чисел: " + positive);
}
А то как написал ты невозможно читать, не то что понять как оно работает и как должно :) Слишком сложный код в первую очередь мешает тебе самому.
+2
Степан Чернов
Уровень 1
6 сентября 2023, 02:35
Попробуй более простое решение, тут явно перебор в if-ах, например в отдельных переменных посчитай кол-во отрицательных и положительных чисел и уже после выводи результат на экран. Например: ... String sNum1 = reader.readLine(); String sNum2 = reader.readLine(); String sNum3 = reader.readLine(); int num1 = Integer.parseInt(sNum1); int num2 = Integer.parseInt(sNum2); int num3 = Integer.parseInt(sNum3); int x = 0; int y = 0; if (num1 >0) x = x + 1; else if (num1 <0) y = y + 1; ... Где "x" - кол-во положительных чисел из введеных (и не равных 0) А "y" - кол-во отрицательных чисел из введеных (и не равных 0)
0
kavasak119999Backend Developer в Raiffeisen
6 сентября 2023, 03:40
Не давайте решения. Попробуйте лучше подсказать что у него не так.
0
Стас ПасинковSoftware Developer в ZipyMaster
6 сентября 2023, 00:41
а шо то вам ідея жовтим виділила? 3 помилки мабуть?)
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush