Если вводить значения из примера в задачке, то всё сортирует. Но! Если ввести не 3 и 2, а 2 и 3, то выводит 3 и 3....
Знаю, что можно проще и массивы, отборы.. но это конец 6 главы, а массивы в 7, поэтому начал решать теми силами, что есть и хочется закончить начатое)
если заменить код с 20 по 25 строку на
else if(count == 2) {
if (f < a) {
b = a;
a = f;
}
else
b = f;
то сортировка выполняется, числа выводятся те же самые, что и вводил, но последний пункт не пропускает и всё...
package com.javarush.task.task06.task0622;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Числа по возрастанию
*/
public class Solution {
public static int count;
public static int a = 0, b = 0, c = 0, d = 0, e = 0;
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for(int i = 0; i < 5; i++){
int f = Integer.parseInt(reader.readLine());
count++;
if(count == 1)
a = f;
else if(count == 2) {
if (f > a)
b = f;
else
b = a;
a = f;
}
else if(count == 3){
if(f > a & f > b)
c = f;
else if(f > a & f < b) {
c = b;
b = f;
}
else if(f < a) {
c = b;
b = a;
a = f;
}
}
else if (count == 4) {
if (f > a & f > b & f > c)
d = f;
else if (f > a & f > b & f < c) {
d = c;
c = f;
} else if (f > a & f < b) {
d = c;
c = b;
b = f;
} else if (f < a) {
d = c;
c = b;
b = a;
a = f;
}
}
else {
if (f > a & f > b & f > c & f > d)
e = f;
else if (f > a & f > b & f > c & f < d) {
e = d;
d = f;
}
else if (f > a & f > b & f < c) {
e = d;
d = c;
c = f;
}
else if(f > a & f < b){
e = d;
d = c;
c = b;
b = f;
}
else if (f < a){
e = d;
d = c;
c = b;
b = a;
a = f;
}
}
}
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
//напишите тут ваш код
}
}