Это же элементарно. Если у вас все числа в массиве отрицательные, а вы инициализировали max нулём, то во всех сравнениях ноль будет больше числа из массива и максимум будет найден неверно.
При поиске максимума инициализировать надо числом, которое заведомо не больше, чем минимально возможное в массиве.