Валидатор ругается, что не выполнены условия:
1. Программа должна выводить 5 чисел, каждое с новой строки.
2. Вывод должен содержать те же числа, что и были введены (порядок не важен).
Комментарии:
public static int count = 5;//первоначальный размер массива, массив уменьшается с каждым выводом на экран
public static int N = 5;//кол-во вводов с клавиатуры и кол-во выводов на экран
sortedList - неудачное название, это просто второй лист, в который перекладываются все числа из list, кроме минимального
метод getMin() - возвращает мин.число и уменьшает массив на 1 элемент (исключает мин.число). Массив уменьшается с каждым выводом на экран
Я в курсе про существование ArrayList и Collections и в первый раз задачу решил при помощи ArrayList, но это не спортивно, задача ведь про составление алгоритма в первую очередь.
package com.javarush.task.task06.task0622;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Числа по возрастанию
*/
public class Solution {
public static int count = 5;
public static int N = 5;
public static int[] list = new int[count];
public static int[] sortedList;
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (int i=0;i<N;i++){
int value = Integer.parseInt(reader.readLine());
list[i] = value;
}
for (int i=0;i<N;i++){
System.out.println(getMin());
}
}
public static int getMin(){
int min = list[0];
int index = 0;
int size = list.length;
for (int i=0;i<size;i++){
int num = list[i];
min = min<num ? min:num;
index = min<num ? index:i;
}
sortedList = new int[count-1];
int k = 0;
for (int i=0;i<count;i++){
if (i != index){
sortedList[k] =list[i];
k++;
}
}
count--;
list = sortedList;
return min;
}
}