如何在java中编写一个程序,它将取5个整数并输出最小和最大整数?

时间:2014-10-01 21:08:13

标签: java

我正在尝试编写一个代码,该代码将要求我已经完成的5个整数值。但是,现在我需要知道如何让我的程序输出5的最小值和最大值。我知道有可能使用if语句但是如果语句可能会有120种不同。我想知道是否有更简单的方法来找到最大值和最小值。

4 个答案:

答案 0 :(得分:0)

将数字放入数组中,对数组进行排序,然后取第一个和最后一个元素。

答案 1 :(得分:0)

为什么你需要120种不同的if语句? 您已经获得了关于调用数学函数来完成工作的答案,我已经使用了一种简单的排序方法来完成工作。

您的问题的解决方案分为以下几种: 1)读取用户输入 2)排序 3)从排序的束中找出最大最小值

代码:

//Import relevant packages

import java.io.BufferedReader;
import java.io.InputStreamReader;

class MinMax {

    public static void main(String[] args) {

        int[] myArray = new int[5];  //Array to hold user input of 5 integers
        int[] resultArray;  //reference var to hold the resultArray object

        //Buffered reader is wrapped around the input stream reader to read user input
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        //Loop to get user input, 5 times
        for (int i=1;i<=5;i++){
            System.out.println("Enter a number: ");
            try{
                myArray[i-1] = Integer.parseInt(reader.readLine());  //String to integer the user     input
                }
            catch(Exception e){
                e.printStackTrace();
            }           
        }
        //Calling the function sortme() to do the sorting
        resultArray = sortme(myArray);

        //After bubble sort has sorted the input array, the min is the first and max is the last,     values of the array
        System.out.println("The min is: " + resultArray[0] + ", and the max is: "+myArray[4]);      
    }

    //Bubble sort
    static int[] sortme(int[] array){
        int temp;

        for (int i=(array.length-1);i>=0;i--){

            for (int j=1;j<=i;j++){
                if (array[j-1] > array[j]){
                    temp = array[j-1];
                    array[j-1] = array[j];
                    array[j] = temp;
                }
            }
        }
        return array;
    }

输入:

1 4 6 3 9

输出:

The min is: 1, and the max is: 9

修改 Yetti先生指出了排序方法的低效率,因为它首先不需要。这是迭代方法:

import java.io.BufferedReader;
import java.io.InputStreamReader;

class MinMax_nosort {
    public static void main(String[] args) {

            int[] myArray = new int[5];  //Array to hold user input of 5 integers

            //Buffered reader is wrapped around the input stream reader to read user input
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

            //Loop to get user input, 5 times
            for (int i=1;i<=5;i++){
                System.out.println("Enter a number: ");
                try{
                    myArray[i-1] = Integer.parseInt(reader.readLine());  //String to integer the user input
                    }
                catch(Exception e){
                    e.printStackTrace();
                }
            }
            minmax(myArray);            
        }

    static void minmax(int[] array){
        int max, min;
        max = min = array[0];
        for (int i=1;i<array.length;i++){
            if (array[i] > max)
                max = array[i];
            else if(array[i] < min)
                min = array[i];
        }
        System.out.println("The min is:" + min + " and the max, is: " + max);
    }

输入:

1 4 6 3 9

输出:

The min is:1 and the max, is: 9

答案 2 :(得分:-1)

int[] test = {1, 4, 2, 10, 5};
Arrays.sort(test);
System.out.println("Smallest:" + test[0] + "  Largest:" + test[4]);

存储在数组中然后对数组进行排序。

答案 3 :(得分:-1)

将数字放入数组或集合中,初始化将存储min或max的变量(分别使用Integer.MAX_VALUEInteger.MIN_VALUE),然后每次迭代数组/集合将当前元素与变量的值进行比较,并在必要时更新变量。


编辑:评论中要求的此解决方案的单行。

int max = Collections.max(Arrays.asList(number1, number2, number3, number4, number5));

min相同。