Вывести на экран числа расположенные между минимальным и максимальным элементом
Подскажите, как исправить, чтобы не весь массив вывелся, а только те эл., что между минимальным и максимальным
package ggig;
public class Fmassiv2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[]= {1,2,3,4,5};
int min=0;
int max=0;
min=array[0];
max=array[0];
for (int i=0; i<array.length; i++) {
if (array[i]>max) {
max=array [i];}
if (array[i]<min) {
min=array [i];}
System.out.println (array[i]);
}
}
}
Ответы (1 шт):
Автор решения: Sergey Chernikov
→ Ссылка
Вот код программы, которая будет работать правильно при условии, что у вас нет повторяющихся элементов в массиве. Я использовал тип double для большей точности и чтобы не делать приведение типов в цикле for. В консоль сначала выводятся все значения жлементов массива, а после слова "output" - значения элементов, которые находятся между минимальным и максимальным значениями. Если есть вопросы, задавайте.
{
double max = Double.NEGATIVE_INFINITY;
double min = Double.POSITIVE_INFINITY;
int maxId = 0;
int minId = 0;
double[] massive = new double[20];
for(int i = 0; i < massive.length; i++)
{
massive[i] = Math.random() * 50;
if(max < massive[i])
{
max = massive[i];
maxId = i;
}
if(min > massive[i])
{
min = massive[i];
minId = i;
}
System.out.println(massive[i]);
}
System.out.println("\noutput:\n");
int start = 0;
int end = 0;
if(minId < maxId)
{
start = minId;
end = maxId;
}
else
{
start = maxId;
end = minId;
}
for(int i = start; i <= end; i++)
System.out.println(massive[i]);
}
