代码之家  ›  专栏  ›  技术社区  ›  esQmo_

打印给定数字中最大的数字-Java

  •  3
  • esQmo_  · 技术社区  · 7 年前

    首先,如果我的问题不清楚,我会道歉。

    我希望输出尽可能多的用户输入。例子:

    input: x = 0; y = 9; z = 5;
    output: 950
    

    我试过下面的代码。

    import java.util.Scanner;
    
        class LargestOfThreeNumbers{
           public static void main(String args[]){
              int x, y, z;
              System.out.println("Enter three integers ");
              Scanner in = new Scanner(System.in);
    
              x = in.nextInt();
              y = in.nextInt();
              z = in.nextInt();
    
              if ( x > y && x > z )
                 System.out.println("First number is largest.");
              else if ( y > x && y > z )
                 System.out.println("Second number is largest.");
              else if ( z > x && z > y )
                 System.out.println("Third number is largest.");
           }
        }
    

    上面的代码将打印如下内容: The seconde number is largest .我定义条件语句的方式是正确的。但我怎么才能得到 950 作为最终结果?我知道这里需要一些逻辑,但我的大脑似乎无法产生逻辑。

    谢谢你的帮助。

    4 回复  |  直到 7 年前
        1
  •  2
  •   c0der    7 年前

    使用java 8的解决方案 IntStream 以下内容:

        int x = 0, y = 9, z = 5;
        IntStream.of(x,y,z).boxed().sorted( (i1,i2) -> Integer.compare(i2, i1)).forEach( i -> System.out.print(i));
    
        2
  •  4
  •   dave    7 年前

    你可以这样做来按顺序打印号码:

    // make an array of type integer
    int[] arrayOfInt = new int[]{x,y,z};
    // use the default sort to sort the array
    Arrays.sort(arrayOfInt);
    // loop backwards since it sorts in ascending order
    for (int i = 2; i > -1; i--) {
        System.out.print(arrayOfInt[i]);
    }
    
        3
  •  1
  •   Elliott Frisch    7 年前

    您可以通过连续调用 Math.max(int, int) 最低要求是 Math.min(int, int) .第一个号码是 max 是的。最后一个是 min 是的。剩下的项可以通过三项相加,再减去min和max(x+y+z-max-min)来确定。就像,

    int max = Math.max(Math.max(x, y), z), min = Math.min(Math.min(x, y), z);
    System.out.printf("%d%d%d%n", max, x + y + z - max - min, min);
    
        4
  •  1
  •   MuffsEZ    7 年前

    这样就行了

        ArrayList<Integer> myList = new ArrayList<Integer>();
        Scanner val = new Scanner(System.in);
        int x = 0;
        for (int i = 0; i < 3; i++) {
            System.out.println("Enter a value");
            x = val.nextInt();
            myList.add(x);
        }
        myList.sort(null);
        String answer = "";
        for (int i = myList.size() - 1; i >= 0; i--) {
            answer += myList.get(i).toString();
        }
        System.out.println(answer);
      }