public class Solution {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a = Integer.MAX_VALUE;
while (input.hasNext()){
int b = input.nextInt();
String s = input.nextLine();
if(b < a){
a = b;
} if(s.equalsIgnoreCase("E")){
break;
}
}
System.out.println(a);
}
}
Алиакбер
7 уровень
Люди добрые помогите догнать, в какую лекцию заглянуть чтоб все стало ясным, какой материал нужно прочитать чтоб стало понятно, что не так я тут делаю??
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
28 ноября, 12:51
Я бы начинал с решения таких задач на бумаге. Абстрагируйся от кода - код не важен. Твоя задача как программиста найти последовательность действий которая приведёт к желаемому результату.
Вот объясни мне например, зачем ты в цикле делаешь по два чтения за одну итерацию? Более чем достаточно одного, потом просто определяешь, если введено число - делаешь сравнение, если введено то что по условию является условием выхода - прерываешь цикл.
Это важно например потому, что лишними действиям ты добавляешь себе же пространство для ошибок. Считав одну строку за раз у тебя ситуация или-или, а когда две уже есть условности, например есть ли там вообще две строки? или например что число тоже является строкой, а значит прочитав две строки подряд ты скорее всего прочитаешь два числа и одно из них потеряешь, а это однозначно повлияет на результат.
0
Димон
28 ноября, 11:19
Чтобы понять, что не так нужно прочитать условия задачи, фраза " если введён только один нечисловой символ " - означает что чисел не было введено , тогда нужно вывести масимум значений, это значит самое большое число из возможных в типе Int
0
Алексей
16 ноября, 20:06
В 6-й строке опечатка. Надо: while (input.hasNextInt()){
В цикле while задаём условие: Если наше минимальное число min болше введённого, то присваиваем min значение введённого числа. Таким образом мы и найдём минимальное число.
Хорошо помогает просто на бумажке самому сформулировать условие и слова выразить кодом.
Если минимальное чило min больше введённого:
if (min > n)
то присваиваем min значение введённого числа:
min = n;
После того как мы ввели что-то кроме числа, мы выйдем из цикла while и тогда сразу же надо вывести наше минмальное число min с помощью записи:
System.out.println(min);
0
Олександр Бондарчук
16 ноября, 17:38
або ось
public class Solution {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int min = Integer.MAX_VALUE;
while (console.hasNextInt()){
int x = console.nextInt();
if (x < min){
min = x;
}
}
System.out.println(min);
}
}
Більш зрозуміле
0
Олександр Бондарчук
16 ноября, 17:36
Спробуй це
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int a = Integer.MAX_VALUE; // Початкове значення для пошуку мінімального
while (input.hasNext()) {
int b = input.nextInt(); // Зчитуємо число
input.nextLine(); // Зчитуємо символ '\n', який залишився після nextInt()
String s = input.nextLine(); // Зчитуємо рядок
if (b < a) {
a = b; // Оновлюємо мінімальне значення
}
if (s.equalsIgnoreCase("E")) { // Перевіряємо, чи це "E"
break;
}
}
System.out.println(a); // Виводимо найменше значення
}
}
0