package com.javarush.task.task07.task0708;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/*
Самая длинная строка
*/
public class Solution {
private static List<String> strings;
public static void main(String[] args) throws Exception {
strings = new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for(int i = 0; i < 5; i++) {
String s = reader.readLine();
strings.add(s);
}
int max = strings.get(0).length();
for(int f = 0; f < strings.size(); f++) {
if(strings.get(f).length() > max) {
max = strings.get(f).length();
System.out.println(strings.get(f));
}
else if (strings.get(f).length() == max) {
max = strings.get(f).length();
System.out.println(strings.get(f));
}
}
}
}
Dima
12 уровень
Почему он выводит 3 строки?
Архивный
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Семён
26 марта 2019, 15:04
Первым циклом находишь самую длинную, а вторым выводишь уже. Зачем в одном цикле всё выводить, при каждом нахождении в списке строки, которая длиннее длины max, будет вывод, а так нельзя.
0
Павел Карасев
23 марта 2019, 12:29
Отформатируйте код, посмотрите на строку 26. Возможно это вас сбивает с толку.
Сделайте 2 цикла, в первом найдите максимальное значение, во втором выведите строки.
0
--------Master
23 марта 2019, 09:43
Не обязательно 3, попробуй такой ввод:
Как можно выводить результат в консоль, еще не зная его окончательно? 0
Dima
23 марта 2019, 11:26
Смотри, что у меня выводит
0
--------Master
23 марта 2019, 11:46
Правильно, потому что ты выводишь все промежуточные результаты, а не сначала ищешь ответ, потом уже его озвучиваешь.
+1