{
static Scanner reader = new Scanner(System.in);
public static void main(String[] args)
{
int max, min, x;
x=reader.naxtInt();
max=x;
min=x;
for (int i=1; i<=24; i++)
{
x=reader.naxtInt();
max=Math.max(max, x);
min=Math.min(min, x);
}
System.out.println("Наибольшее значение в серии="+max);
System.out.println("Наименьшее значение в серии="+min);
}
}
Обратите внимание, что итоговый результат выводится на экран уже после завершения цикла.
Теперь усложним задание: требуется не только найти наибольшее и наименьшее значения в серии чисел, но и определить, на каком месте в серии были эти значения.
Например, для серии 56, 12, 5,87, 39, 62, 94, 4, 15 результаты будут следующими:
· максимум равен 94;
· минимум равен 5;
· максимум расположен на 7-м месте в серии;
· минимум расположен на 3-м месте в серии.
Важное замечание: пока мы будем исходить из предположения, что во всей серии максимальное и минимальное значения встречаются каждое только по одному-единственному разу! Это, разумеется, совершенно не обязательно и вовсе не очевидно, но мы пока будем исходить из этого предположения – для простоты решения. В дальнейшем, разумеется, можно и не использовать этого предположения, но при этом и условие задачи будет выглядеть иначе.
Для этого мы введем две дополнительных переменных, mesto_max и mesto_min:
· первоначально, еще до начала цикла, занесем в них значение 1. Таким образом мы предполагаем, что искомые значения находятся на первом месте в серии. Разумеется, в дальнейшем мы проверим эти предположения и либо оставим их без изменений, либо изменим;
· добавим в цикл две команды выбора, которые будут изменить значение переменных mesto_max, mesto_min – в том случае, если в цикле будет обнаружено очередное наибольшее или наименьшее значение.
Теперь решение будет выглядеть следующим образом:
import java.util.*;