level05.lesson12.bonus03 - помогите решить

Помогите решить задачу.

package 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));

        System.out.println("Введіть число N > 0 ");

        String n = reader.readLine();
        int max = Integer.parseInt(n);

        if (max > 0 )
        {
            for (int i = 0; i <= max; i++)
            {
                BufferedReader reader1 = new BufferedReader(new InputStreamReader(System.in));
                String s = reader.readLine();
                int a = Integer.parseInt(s);
                if (a > max);
                {
                    max = a;
                }
                System.out.println(max);
            }
        }
    }
}

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

yozh
  • yozh
  • +1
  • Комментарий отредактирован 2016-09-20 07:00:10 пользователем yozh
Начните с исправления этой ошибки:
Вы сперва записываете в переменную max количество чисел, а потом начинаете в max сохранять считанные с клавиатуры числа которые больше max.

Видимо тут должны быть 2 переменные — в одной количество чисел, в другой максимальное число.
v_oleksiienko
Вы правы.

Не хватало одной переменной.

Спасибо
t952
  • t952
  • +1
Алгоритм у вас должен быть примерно следующим:
1. Считываете n
2. Пробегаетесь в цикле от 0 до n и считываете числа
3. Изначально max = первому числу
4. Сравниваете max с каждым последующим и если оно больше max, то изменяете значение max
5. Выводите max

Сейчас же у вас max = n
Например n = 5
Числа: 0 1 2 3 4
В вашем случае ответ будет 5, а должен быть 4
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.