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");
}
}
}
Wolterius
17 уровень
Что не так
Решен
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Никита
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 августа 2019, 14:55
Хотелось бы свой код исправить, интересует, где конкретно ошибка :(
0
hidden #598481
17 августа 2019, 15:51
ошибка в том, что ты нули прибавляешь к отрицательным.
но прислушайся к тому, что тебе говорят. не стоит учиться программировать неправильно, потом придется переучиваться. поэтому стоит переписать сначала, заведя два счетчика.
0
Wolterius
17 августа 2019, 16:11
хорошо, спасибо большое, сделал как посоветовали :)
0
Никита
17 августа 2019, 20:06
я же написал в чем конкретно ошибка) наверно невнимательно прочитал. Тебе надо написать дополнительно If когда будет один ноль в наборе, потом два а потом три.
1) Ошибка у тебя нули прибавляются к отрицательным. А должны не прибавляться.
2) тебе надо сделать так чтобы нули не считались ни такими ни такими
0
Wolterius
18 августа 2019, 10:00
Всё хорошо, задача уже была решена :)
0