package com.javarush.task.task07.task0701;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Массивный максимум
*/
public class Solution {
public static void main(String[] args) throws Exception {
int[] array = initializeArray();
int max = max(array);
System.out.println(max);
}
public static int[] initializeArray() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int[] array = new int[3];
for (int i = 0; i < array.length; i++){
array [i] = Integer.parseInt(reader.readLine());
}
// создай и заполни массив
return array;
}
public static int max(int[] array) {
int result = array[0];
for (int i = 0; i < array.length; i++){
result = array[i] > array[i+1] ? array[i] : array[i+1];
}
// найди максимальное значение
return result;
}
Иван Зубов
31 уровень
Подскажите плиз, программа только считывает цифры с клавиатуры и выдает ошибку, что сделано неправильно?
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Артем Divertitto Senior Android-разработчи в United Tech Master
24 июля 2018, 09:08
1. Ты не ищешь максимальное число, ты сравниваешь да последовательных чисел. Сравнивай result и array[i], если элемент массива больше, то это уже и есть новое бОльшее число.
2. По условию вроде нужно считать 20 чисел, а не три
0
Илья ГековMaster
20 июля 2018, 20:09решение
На последней итерации в цикле метода max выходишь за границы массива, то есть берешь последний элемент и пытаешься сравнить с последующим, которого не существует. Исправляется небольшим изменением в условии цикла.
+2