JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Что не так
Wolterius
17 уровень
  • 17.08.2019
  • 423просмотров
  • 6комментариев

Что не так

Вопрос по задаче Положительные и отрицательные числа
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.*; import java.util.*; public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader (new InputStreamReader(System.in)); int i1 = Integer.parseInt(reader.readLine()); int i2 = Integer.parseInt(reader.readLine()); int i3 = Integer.parseInt(reader.readLine()); if (i1 <= 0 && i2 <= 0 && i3 <= 0) { System.out.println("количество положительных чисел: 0"); System.out.println("количество отрицательных чисел: 3"); } else if (i1 > 0 && i3 <= 0 && i2 <= 0) { System.out.println("количество положительных чисел: 1"); System.out.println("количество отрицательных чисел: 2"); } else if (i2 > 0 && i3 <= 0 && i1 <= 0) { System.out.println("количество положительных чисел: 1"); System.out.println("количество отрицательных чисел: 2"); } else if (i3 > 0 && i1 <= 0 && i2 <= 0) { System.out.println("количество положительных чисел: 1"); System.out.println("количество отрицательных чисел: 2"); } else if (i1 > 0 && i2 > 0 && i3 <= 0) { System.out.println("количество положительных чисел: 2"); System.out.println("количество отрицательных чисел: 1"); } else if (i1 > 0 && i3 > 0 && i2 <= 0) { System.out.println("количество положительных чисел: 2"); System.out.println("количество отрицательных чисел: 1"); } else if (i2 > 0 && i3 > 0 && i1 <= 0) { System.out.println("количество положительных чисел: 2"); System.out.println("количество отрицательных чисел: 1"); } else if (i1 > 0 && i2 > 0 && i3 > 0) { System.out.println("количество положительных чисел: 3"); System.out.println("количество отрицательных чисел: 0"); } } }
0
Комментарии (6)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Никита
Уровень 30
17 августа 2019, 13:49полезный
Ну смотри у тебя решение очень не универсальное. И проблема с 0. Так как его считать не нужно вовсе. И если ввести 2 0 0. То должно вывести что только 1 положительное число. В твоем случае надо отдельно писать Ифы для трех нулей, двух нулей и одного нуля в введенной строке. Так как ты выводишь информацию о количестве строкой а не считаешь ее отдельно. Я бы предложил циклом с массивом написать, так как это быстрее, но раз ты хочешь Ифами и возможно просто не знаешь циклы и массивы, то попробуй сделать проверку для каждого числа отдельно. Блок ифов для каждого числа. К примеру: int plus = 0; // количество чисел с плюсом int minus = 0; // количество чисел с минусом if (a > 0){ plus ++; (или plus = plus + 1) } else if (a < 0) { minus++; (или minus = minus + 1;) } И так для каждого числа. А потом просто двумя строками выводишь сколько чисел с минусом а сколько с плюсом. И ноль в учет не идет. Если интересен более быстрый способ решения, напиши я скину.
+1
Wolterius
Уровень 17
17 августа 2019, 14:55
Хотелось бы свой код исправить, интересует, где конкретно ошибка :(
0
hidden #598481
Уровень 27
17 августа 2019, 15:51
ошибка в том, что ты нули прибавляешь к отрицательным. но прислушайся к тому, что тебе говорят. не стоит учиться программировать неправильно, потом придется переучиваться. поэтому стоит переписать сначала, заведя два счетчика.
0
Wolterius
Уровень 17
17 августа 2019, 16:11
хорошо, спасибо большое, сделал как посоветовали :)
0
Никита
Уровень 30
17 августа 2019, 20:06
я же написал в чем конкретно ошибка) наверно невнимательно прочитал. Тебе надо написать дополнительно If когда будет один ноль в наборе, потом два а потом три. 1) Ошибка у тебя нули прибавляются к отрицательным. А должны не прибавляться. 2) тебе надо сделать так чтобы нули не считались ни такими ни такими
0
Wolterius
Уровень 17
18 августа 2019, 10:00
Всё хорошо, задача уже была решена :)
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush