level05.lesson12.bonus03 не проходит тест

</codepackage com.javarush.test.level05.lesson12.bonus03;

import java.io.*;

/* Задача по алгоритмам
Написать программу, которая:
1. вводит с консоли число N > 0
2. потом вводит N чисел с консоли
3. выводит на экран максимальное из введенных N чисел.
*/

public class Solution
{
    public static void main(String[] args) throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int maximum = 0;
        int y = 0;

        do
        
             y = Integer.parseInt(reader.readLine());
            while (y <= 0) ;
        
        for (int i = 1; i <= y; i++)
        {
            int k = Integer.parseInt(reader.readLine());
            maximum = max(k,maximum);
            //напишите тут ваш код
        }
            System.out.println(maximum);
    }

    public static int max(int k, int maximus){
       int x = maximus ;
                return (x > k) ? x:k;
    }

3 комментария

MrMango
  • MrMango
  • 0
  • Комментарий отредактирован 2016-11-24 19:03:33 пользователем MrMango
тут вот интересное условие while (y <= 0);
т.е. пока 'y' будет меньше либо равно 0 будет продолжаться цикл, но условие говорит, что N>0 при том что тебе надо всего 1 раз прочитать строку то это лишнее нагромождение
Также возможно после первого числа следующие числа будут подаваться не по одному в строке, а по несколько в одной строке.
Пример:
4
34 4 3 23
sibiriak
  • sibiriak
  • 0
  • Комментарий отредактирован 2016-11-24 20:46:36 пользователем sibiriak
while (y <= 0) проверяет условие (N >0), если условие не верно, то возвращает к вводу нового значения согласно условия задачи
miracleman
  • miracleman
  • +1
  • Комментарий отредактирован 2016-11-24 22:45:51 пользователем miracleman
Вы заранее говорите, что минимальный максимум равно 0. А если все введенные числа будут отрицательными?
Да, думаю можно и без переменной x в методе max обойтись.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.