java - 如何查找最小值和最大值以及每个值出现的次数

标签 java

我在解决这个作业问题时遇到了困难。该问题要求我创建一个程序来读取用户输入的数字并获取这些数字的最小值和最大值。

基本上,输出应如下所示:

输入数量:10

输入以空格分隔的 10 个数字,然后按 Enter:1 2 3 1 2 3 4 5 6 3

最小值为 1,出现 2 次

最大值为 6,出现 1 次

我能够创建方法来获取最小值和最大值。我不知道如何用我所拥有的来获得最小和最大出现的次数。我也不知道如何让扫描仪读取同一行上的整数输入。

import java.util.Scanner;

public class homework2
{
  public int min(int[] array)
  {
    int min = array[0];
    for (int i = 0; i < array.length; i++)
    {
      if (array[i] < min)
      {
        min = array[i];
      }
    }
    return min;
  }

  public int max(int[] array)
  {
    int max = 0;
    for (int i = 0; i < array.length; i++)
    {
      if (array[i] > max)
      {
        max = array[i];
      }
    }
    return max;
  }

  public static void main(String[] args)
  {
    Scanner s = new Scanner(System.in);
    System.out.println("Enter the length of the array:");
    int length = s.nextInt();
    int[] myArray = new int[length];
    System.out.println("Enter the elements of the array:");

    for (int i = 0; i < length; i++)
    {
      myArray[i] = s.nextInt();
    }
  }
}

最佳答案

这是一个简单的程序来完成您的需要:

public static void main(String[] args) {
    int[] array = {1, 2, 3, 1, 2, 3, 4, 5, 6, 3}; // get your actual array
    int first = array[0];

    // initial values
    int min = first;
    int minOccurs = 1;
    int max = first;
    int maxOccurs = 1;

    for(int i = 1; i < array.length; i++) {
        int current = array[i];
        if(current == min) {
            minOccurs++;
        } else if (current < min) {
            min = current;
            minOccurs = 1;
        }

        if(current == max) {
            maxOccurs++;
        } else if (current > max) {
            max = current;
            maxOccurs = 1;
        }
    }

    System.out.println("Min is " + min + " and has " + minOccurs + " occurrences");
    System.out.println("Max is " + max + " and has " + maxOccurs + " occurrences");
    // prints: "Min is 1 and has 2 occurrences"
    // prints: "Max is 6 and has 1 occurrences"
}

关于java - 如何查找最小值和最大值以及每个值出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58381857/

相关文章:

java - 尝试将布局设置为 BoxLayout

java - 获取日期回退一天

java - 当您知道 HashSet 中最大可能的元素数时,应该使用什么加载因子

java - Weka 上的过滤器

java - 如何从对象数组中创建 GUI 列表?

java - 我从 Spring boot 安全设置中收到 "Full authentication is required to access this resource"响应

java - Zookeeper 不适用于 32 位 Windows 上安装的 JRE

java - 计算单元格大小并绘制(中间有线)

java - 我们可以从 bean 类将值设置为 localStorage (HTML5) 吗?

java - 如何发现客户端android套接字断开连接?