首页 > 解决方案 > 从用户那里获得五个输入的最大值和最小值

问题描述

import java.util.Scanner;

class Compare
{
    int max = 0;
    int min = 0;

    public void max(int num)
    {
        if(num > max)
        {
            max = num;
        }
    }
    public void min(int num)
    {
        if(num < min)
        {
            min = num;
        }
    }
}
class Main
{
    public static void main(String args[])
    {
        Compare compare = new Compare();
        Scanner input = new Scanner(System.in);

        int sets = input.nextInt();
        for (int i = 0; i < sets ; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                int num_main = input.nextInt();
                compare.max(num_main);
                compare.min(num_main);
            }
            System.out.println(compare.max);
            System.out.println(compare.min);
        }
    }
}

我想计算来自用户的五个输入的最大值和最小值,我设法获得最大值但未能获得最小值,而是我得到 0 作为我的最小值,该最小值是从之前在类比较中初始化的。我怎样才能以最简单的方式获得最小值

标签: javaclassmethodsmaxmin

解决方案


您将 0 作为最小值的原因是因为当您调用时,您的值与等于 0compare.min(num);的预定义本地值进行比较。min

当您将任何正数与 0 进行比较时,您将得到 0 作为最小值。

一个可行的解决方案是

class Compare
{
    int max = Integer.MIN_VALUE;
    int min = Integer.MAX_VALUE;


public void max(int num)
    {
        if(num > max)
        {
            max = num;
        }
    }
    public void min(int num)
    {
        if(num < min)
        {
            min = num;
        }
    }
}

这将保证您首先比较的内容将保存为最小值,然后用作整个程序执行的新最小值。


推荐阅读