java - 计算整数序列的最大值和最小值的程序

标签 java

在我的代码中,我试图从用户输入的数字序列中查找序列的平均值、最大数字和最小数字。我的问题是我不知道如何编写代码,因此当用户输入 0 或负整数时停止并进行计算。

public class Sequence2
{

    public static void main(String[] args)
    {
        Scanner keyb = new Scanner(System.in);
        int count = 0;
        double sum = 0;
        double avg = 0;
        int n;

        System.out.println("Enter a sequence of positive integers, which will end with either 0 or a negative integer. ");
        int max = keyb.nextInt();
        int min = keyb.nextInt();
        while (keyb.hasNextInt())
        {
            n = keyb.nextInt();
            if (n > max)
            {
                max = n;
            }
            if (n < min)
            {
                min = n;
            }
            count++;
            sum += n;
        }
        System.out.println("The maximum value is: " + max);
        System.out.println("The minimum value is: " + min);
        avg = sum / count;
        System.out.println("Average = " + avg);
    }
}

最佳答案

解决此问题的关键点是维护在循环外部定义的最小和最大值的状态。特别是,最小值应使用最大可能的整数值作为种子,而最大值可以使用零作为种子。

public static void main(String[] args) {
    int minimum = Integer.MAX_VALUE;
    int maximum = 0;
    int total = 0;
    int counter = 0;
    Scanner keyb = new Scanner(System.in);

    while (true) {
        int num = keyb.nextInt();
        if (num <= 0) {
            System.out.println("Exiting input loop.");
            break;
        }

        if (num < minimum) {
            minimum = num;
        }
        if (num > maximum) {
            maximum = num;
        }
        total += num;
        ++counter;
    }

System.out.println("minimum: " + minimum);
System.out.println("maximum: " + maximum);
System.out.println("average: " + (total / counter));

我省略了一些事情,例如处理用户未在扫描仪中输入有效整数的可能性。另外,我假设用户总是会输入至少一个有效整数。如果不是,我们将不得不在最后处理平均算术以避免被零除。

关于java - 计算整数序列的最大值和最小值的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57099439/

相关文章:

java - 按每个汉堡的成本降序排序,这是一个带有 Collections.sort 的 ArrayList

Java:合并 InputStreams

java - 更改 JavaFX 应用程序启动表单

java - 自动生成用户密码并直接向相应用户发送有关其在 Alfresco 中的登录凭据的邮件

java - 需要知道 "OutOfMemoryError : Java Heap Space"的根本原因

Java jdbc 连接器不插入行,但我没有收到错误消息

C# sealed 与 Java final

java - System.gc() 的可用对象

java - 谁能修复 jsp 和 servlet 中的删除功能吗?

java.lang.IllegalArgumentException : Unable to PTableType enum for value of 'MATERIALIZED VIEW' Exception with Phoenix and Hbase 异常