Задачу решал поиском среднего значения, а затем находил разницу между средним значением и вводимыми цифрами. У кого самая маленькая разница, то и есть среднее число. Не проходят условия вывести среднее число и вывести любое из двух, если два числа одинаковы.
Дело в double? Или с условиями чет напутал? Если одно из условий прошло, то другие не рассматриваются. Так?
package com.javarush.task.task04.task0441;
import java.io.BufferedReader;import java.io.InputStreamReader;
/*
Как-то средненько
*/
public class Solution {
public static void main(String[] args) throws Exception {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String a1 = reader.readLine();
int a = Integer.parseInt(a1);
String b1 = reader.readLine();
int b = Integer.parseInt(b1);
String c1 = reader.readLine();
int c = Integer.parseInt(c1);
int k = (a + b + c) / 3;
int m1 = znak(k-a);
int m2 = znak(k-b);
int m3 = znak(k-c);
int mi = min(m1,m2,m3);
if ((mi == m1) && (mi == m2) && (mi == m3))
System.out.println(c);
else if ((mi == m1) && (mi == m2))
System.out.println(a);
else if ((mi == m2) && (mi == m3))
System.out.println(b);
else if ((mi == m1) && (mi == m3))
System.out.println(a);
else if (mi == m1)
System.out.println(a);
else if (mi == m2)
System.out.println(b);
else if (mi == m3)
System.out.println(c);
}
public static int znak(int t){
if (t < 0){
return -t;
}
else {
return t;
}
}
public static int min(int a, int b, int c){
if (a<=b){
if (a < c)
return a;
else
return c;
}
else {
if (b < c)
return b;
else
return c;
}
}
}