Class primer_for16

{

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.*;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: