Второе минимальное число из введенных

  • 4
  • Недоступна
В этой задаче нужно: 1. Считывать целые числа с клавиатуры до тех пор, пока не будет введено что-то другое: например, строка или символ. Должно быть введено минимум два числа. Если введено меньше, то такую ситуацию обрабатывать не нужно, а программа может быть завершена с ошибкой. 2. Вывести на
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (355)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Anna Sgibneva
Уровень 12
14 ноября, 22:44
Scanner sc = new Scanner(System.in); int min = Integer.MAX_VALUE; int min2 = Integer.MAX_VALUE; while (sc.hasNextInt()){ int a = sc.nextInt(); if (a < min) { min2 = min; min = a; } else if ((a > min) && (a < min2)) min2 = a; } System.out.println(min2);
Anonymous #3203251
Уровень 5
18 ноября, 09:48
прошел проверку?
Mr.Krashing
Уровень 6
18 ноября, 11:15
подскажите, для чего это присваивание?
if (a < min) {
        min2 = min;
        min = a;
Anna Sgibneva
Уровень 12
20 ноября, 12:44
да
Anna Sgibneva
Уровень 12
20 ноября, 12:54
мы ищем второе минимальное. если а меньше мин, то мин становится = а, соответственно мин2 должен получить прежнее значение мин
Anna Sgibneva
Уровень 12
20 ноября, 13:07
иначе, в случае, если минимальное число возникнет в конце , мин2 будет посчитан неверно
Eduard System Engineer
14 ноября, 13:53
Все условия выполняются, но проверку не проходит: Scanner scan = new Scanner(System.in); int min = scan.nextInt(); int max = scan.nextInt(); while (scan.hasNextInt()) { int x = scan.nextInt(); if (x < min && x > max) min = x; } System.out.println(min);
Iwan Halliday
Уровень 5
15 ноября, 21:06
Попробуйте на вход подать 2 2 3 exit
Никита
Уровень 4
12 ноября, 12:25
Уважаемые товарищи, если не затруднит, пробегитесь, пожалуйста, по моему решению? Ответ выдаёт правильный, а задача всё равно не засчитывается: 3 и 4 условие public class Solution { public static void main(String[] args) { //напишите тут ваш код Scanner console = new Scanner(System.in); int min1 = Integer.MAX_VALUE; int min2 = min1; while (console.hasNextInt()){ int x = console.nextInt(); if (x < min1) min1 = x; if ((x < min2) && (x > min1)) min2 = x; } System.out.println(min2); } }
Anna Sgibneva
Уровень 12
14 ноября, 22:47
нужно добавить условие, что если x<min1, тогда min2=min1 , а min1=x
NuuuNikita
Уровень 10
11 ноября, 21:54
public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int min1 = Integer.MAX_VALUE, min2 = Integer.MAX_VALUE; while (scan.hasNextInt()) { int a = scan.nextInt(); if (a < min1 && a < min2) { min2 = min1; min1 = a; } else if (a > min1 && a < min2) { min2 = a; } } if (min1<min2) { System.out.println(min2); } else{ System.out.println(min1); } } }
Anonymous #3196841
Уровень 10
6 ноября, 14:05
public class Solution { public static void main(String[] args){ Scanner sc1 = new Scanner(System.in); int min = Integer.MAX_VALUE; int minSecond = min; int temp = 0; while(sc1.hasNextInt()) { int number = sc1.nextInt(); if (min > number) { temp = min; min = number; } if (temp > number && min < number) { minSecond = number; } else{ minSecond = temp; } } System.out.println(minSecond); } }
Anonymous #3160859
Уровень 8
6 ноября, 13:43
Scanner console=new Scanner(System.in); int min=Integer.MAX_VALUE; int Fmin=Integer.MAX_VALUE; int a=console.nextInt();; int b=console.nextInt();; if (a<b){ min=Fmin; Fmin=a; } else{ min=Fmin; Fmin=b; } while (console.hasNextInt()){ int x=console.nextInt(); if(x<Fmin && min!=Fmin){ min=Fmin; Fmin=x; } else if (x>Fmin && x<min) { min=x; } } System.out.println(min); } }
Виктория
Уровень 15
6 ноября, 09:38
Scanner s = new Scanner(System.in); int min1 = Integer.MAX_VALUE; int min2 = Integer.MAX_VALUE; while (s.hasNextInt()) { int a = s.nextInt(); if (a < min1) { min2 = min1; min1 = a; } else if ((a < min1) && (min1 < min2)) { min2 = min1; min1 = a; } else if ((min2 < min1) && (min1 < a)) { min2 = min1; min1 = min2; } else if ((min1 < a) && (a < min2)) { min2 = a; } else if ((min2 < a) && (a < min1)) { min2 = a; min1 = min2; } else if ((a < min2) && (min2 < min1)) { min1 = a; } } System.out.println (min2); } }
Виктория
Уровень 15
6 ноября, 10:02
У нас всего может быть конечное число вариантов развития событий, которые я расписала. Суть в том, чтобы объявленная переменная min1 приняла минимальное значение, а min2 стала второй после минимальной. И каждое последующее сравнение шло с этими минимальным и вторым по минимальности числами. 1) Первая проверка идет после ввода двух чисел, они сравниваются так же, как пример из лекции. a < min1 min2 принимает значение min1; min1 принимает значение а 2) Остальные проверки идут уже с 3-мя числами. И вот исчерпывающее количество возможных вариантов. Наша задача – переставить в min1 и min2 минимальные 2 числа, с которыми будет сравниваться следующее число из цикла. А) a <min1 <min2. min2 принимает значение min1; min1 принимает значение а. Б) min2 < min1 < a. min2 принимает значение min1; а min1 принимает значение min2. В) min1 < a < min2 min2 принимает значение а; min1 и уже на своем месте Г) min2 < a < min1 min2 принимает значение а; min1 принимает значение min2. Д) a < min2 < min1. min2 уже стоит на своем месте; min1 принимает значение а Е) min1 < min2 < a Тут все уже стоит на своем месте.
Anonymous #3203251
Уровень 5
18 ноября, 10:38
Здравствуйте а как min2 может стать меньше min1?
Виктория
Уровень 15
5 ноября, 18:41
Не могу понять, почему не работает с отрицательными числами. Scanner s = new Scanner(System.in); int min1 = Integer.MAX_VALUE; int min2 = Integer.MAX_VALUE; while (s.hasNextInt()) { int a = s.nextInt(); if (a < min1) { min1 = a; min2 = min1; } } System.out.println(min2); } }
Ivan
Уровень 6
23 ноября, 22:00
попробуйте поставить -1 в значение min1: Scanner scanner=new Scanner(System.in); int min1=Integer.MIN_VALUE-1; int min2=Integer.MIN_VALUE; while (scanner.hasNextInt()) {int x=scanner.nextInt(); if (min1>=x) {if (min1!=x) {min2=min1; min1=x;}} else if (min2>x) {min2=x;}} System.out.println(min2);
Орхан
Уровень 6
3 ноября, 17:59
Пожалуйста! Scanner console = new Scanner(System.in); int min = console.nextInt(); int secondmin = console.nextInt(); if (secondmin < min) { int a = min; min = secondmin; secondmin = a; } while (console.hasNextInt()) { int x = console.nextInt(); if (min == secondmin) { if (x < min) min = x; else secondmin = x; } else if (x < min) { secondmin = min; min = x; } else if ((min < x) && (x <= secondmin)) secondmin = x; } System.out.println(secondmin);
Anonymous #3029023
Уровень 6
27 октября, 08:59
public class Solution {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);

        int min = console.nextInt(); //ЗДЕСЬ мы берем первое число из консоли?
        int secondMin = console.nextInt(); //Здесь мы берем второе число их консоли?
        if (secondMin < min) {
            int tmp = min;
            min = secondMin;
            secondMin = tmp;
        }
        while (console.hasNextInt()) {
            int x = console.nextInt(); //ОБЪЯСНИТЕ по порядку обработки, на этом моменте уже берется третье число из консоли, если мы только запустили код или первое?
            if(min == secondMin) {
                if(x < min) {
                    min = x;
                } else {
                    secondMin = x;
                }
            } else if (x < min) {
                secondMin = min;
                min = x;
            } else if (x > min && x < secondMin) {
                secondMin = x;
            }
        }
        System.out.println(secondMin);
    }
}
Vladmvg
Уровень 10
1 ноября, 22:17
Ввод с консоли идет по очередности, по написанному коду (как вы и написали в комментариях)