Возможно в голову, что-то очевидное не лезет. Пробовал разные варианты введённых чисел и вроде ни с одним нет проблемы (в рамках условий).
if во круг принта для 0 или отрицательного в max, ибо я уже грешу на то, что не понимаю условия.
Ментор пишет "Убедись, что программа работает корректно для отрицательных чисел.", но она корректно работает для них и выводит максимальное, даже если оно отрицательное. Опять же, абсолюты на сравнение я поставил из-за этой же ошибки, ну и очевидно он так выводит только положительные числа.
Не хочется использовать чужое решение или решать более простым способом, уже придя к этому и не понимая в чем проблема.
package com.javarush.task.task05.task0532;
import java.io.*;
/*
Задача по алгоритмам
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(reader.readLine());
if (N > 0) { //1. считывает с консоли число N, которое должно быть больше 0
//напишите тут ваш код
int[] arrayN = new int[N]; //создание array с длинной N
int max = 0;
for (int i = 0; i < arrayN.length; i++) { //loop для ввода N количества чисел
int M = Integer.parseInt(reader.readLine());
arrayN[i] = M; //заносим число в array
if ((arrayN[i]) > (max)) { //сравниваем текущее максимальное с введённым числом (абсолюты для отрицательных чисел)
max = arrayN[i];//заносим максимальное с оригинальным знаком
}
}
//if (max > 0) {
System.out.println(max);
//}
}
}
}