如何比较三个双打并找到最大值,最小值和中等值?(以最短的方式)

Tas*_*bot -3 java

我只会从用户那里获取3个值,因此只有3个可能的答案.您还可以假设用户不会输入0三次,并且如果他们三次输入相同的值则无关紧要.我可以为这些场景创建我自己的东西(我已经拥有).

import java.util.Scanner;
import java.io.*;
import java.util.*;

public class Triangles
{
    public static void main (String[]args) throws IOException
        { 
        String a = "You have an";
        String b = "triangle";

        double l;
        Scanner lengthinput = new Scanner(System.in);

        double h;
        Scanner heightinput = new Scanner(System.in);

        double w;
        Scanner widthinput = new Scanner(System.in);

        System.out.println("Enter the length.");
        l = lengthinput.nextDouble();

        System.out.println("Enter the height.");
        h = heightinput.nextDouble();

        System.out.println("Enter the width.");
        w = widthinput.nextDouble();

        double max = l;

        if (w > max) max = w;
        if (h > max) {max = h;
Run Code Online (Sandbox Code Playgroud)

我正在努力的原因是因为以下原因:

我知道最大值,现在我应该只复制最大代码来创建一个最小值(因为那是我刚学到的所有内容(介绍CS类)).但是,我怎么知道如何将最小值排除在我随机选择的值之外?然后相同的中等价值.

khe*_*ood 6

您可以找到三个值的最小值,中值和最大值,如下所示:

double a = ...;
double b = ...;
double c = ...;

if (a > b) {
  double swap = a;
  a = b;
  b = swap;
}

if (b > c) {
  double swap = b;
  b = c;
  c = swap;
}

if (a > b) {
  double swap = a;
  a = b;
  b = swap;
}

System.out.println("Min: "+a);
System.out.println("Med: "+b);
System.out.println("Max: "+c);
Run Code Online (Sandbox Code Playgroud)