Java задачка, помогите разобраться.

Discussion in 'PHP' started by Redas, 2 Oct 2016.

  1. Redas

    Redas New Member

    Joined:
    25 Sep 2016
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    Всем привет, учусь Java на специальном сервисе где надо выполнять задания, и тут было задание ввести с клавиатуры три числа, и чтобы они вывелись на консоли в порядке убывания. Я в принципе всё понял и сделал всё сам, но каюсь кусок кода где нужно было найти среднее число, я сп... взял у другого человека, и сейчас хочу разобраться как этот кусок работает. Обьясните кто может. Вот весь код
    importjava.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 sa = reader.readLine();
    String sb = reader.readLine();
    String sc = reader.readLine();
    int a = Integer.parseInt(sa);
    int b = Integer.parseInt(sb);
    int c = Integer.parseInt(sc);
    System.out.println(max(a, b, c));
    System.out.println(mid(a, b, c));
    System.out.println(min(a, b, c));
    }

    static int max(int x, int y, int z)
    {
    if ((x >= y) && (x >= y))
    return x;
    else if (y >= z)
    return y;
    else return z;


    }

    static int min(int r, int t, int u)
    {
    if ((r <= t) && (r <= u))
    return r;
    else if (u <= r)
    return u;
    else return t;
    }

    static int mid(int x2, int y2, int z2)
    {
    if (((max(x2, y2, z2) == x2) && (min(x2, y2, z2) == y2)) || ((max(x2, y2, z2) == y2) && (min(x2, y2, z2) == x2)))
    return z2;
    else if (((max(x2, y2, z2) == x2) && (min(x2, y2, z2) == z2)) || ((max(x2, y2, z2) == z2) && (min(x2, y2, z2) == x2)))
    return y2;
    else return z2;
    }
    }


    Вот этот кусок не понимаю
    static int mid(int x2, int y2, int z2)
    {
    if (((max(x2, y2, z2) == x2) && (min(x2, y2, z2) == y2)) || ((max(x2, y2, z2) == y2) && (min(x2, y2, z2) == x2)))
    return z2;
    else if (((max(x2, y2, z2) == x2) && (min(x2, y2, z2) == z2)) || ((max(x2, y2, z2) == z2) && (min(x2, y2, z2) == x2)))
    return y2;
    else return z2;
     
  2. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    585
    Reputations:
    52
    package test3;
    Разбираться в этом быдлокоде и не надо. Еслиб я был учителем то поставил-бы двойку.

    Всё твоё задание в нескольких строчках:
    Code:
    import java.util.Arrays;
    import java.util.Random;
    
    public class Main {
      public static void main(String[] args) {
        Random rand = new Random();
        int[] numbers = new int[] {
          rand.nextInt(100),
          rand.nextInt(100),
          rand.nextInt(100)
        };
        Arrays.sort(numbers);
        System.out.println("Array contents: " + Arrays.toString(numbers));
        System.out.println("Minimal: " + numbers[0]);
        System.out.println("Middle: " + numbers[1]);
        System.out.println("Maximum: " + numbers[2]);
      }
    }
    
    Циферки с клавиатуры вводить не лень? А вдруг пользователь введёт не циферки? Пускай их придумывает комп.
    И да, выучи бб-код [cоde]
     
    Gasplyak and nekitekb like this.