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

时间:2015-12-03 14:07:02

标签: 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;

我挣扎的原因是由于以下原因:

我知道最大值,现在我应该复制最大代码来创建一个最小值(因为我已经学到了所有这些(介绍CS类))。但是,我怎么知道如何将最小值排除在我随机选择的值之外?然后同样为中等值。

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:-1)

您可以尝试以下内容:

    float l = 2.0f;
    float h = 3.0f;
    float w = 1.5f;
    float[] arr = new float[] {l, h, w};
    Arrays.sort(arr);
    System.out.println("Min: " + arr[0] + ", Medium:  " +  arr[1]  + ", Max:  " +  arr[2]);