【问题标题】:java- find minimum/maximum in an entered set of numbersjava-在输入的一组数字中查找最小值/最大值
【发布时间】:2016-05-25 18:28:29
【问题描述】:

使用 while 循环,我必须执行以下操作:
使用变量“i”计算输入的整数数量,变量“number”输出输入的数字,变量“min”表示迄今为止输入的最小数字,以及变量“max”表示迄今为止输入的最大数字。
用户将输入总共 5 个整数。

这是我的代码:

import java.util.Scanner;

public class MinMax
{
  public static void main(String[] args)
  {
   int i = 1;

   while (i <= 5)
   {
    int smallest = 0;
    int largest = 0;

    System.out.println("Enter number: ");
    Scanner input = new Scanner(System.in);
    int number = input.nextInt();

    System.out.println("Amount of numbers entered: " + i);

    System.out.println("Number entered: " + number);

    if (number < min)
    {
      min = number;
    }
    System.out.println("Smallest # so far: " + min);

    if (number > max)
    {
      max = number;
    }
    System.out.println("Largest # so far: " + max);


    i++;

   }
 }
}

当我运行它时,“i”、“number”和“maximum”变量似乎都可以正常工作。但是,“最小值”变量记住,“最小值”的设置数是 0。有没有办法解决这个问题,所以如果我输入数字 10 作为第一个数字,输入数字 2 作为第二个数字,代码会吐出“2”作为最小值而不是“0”?

谢谢!

【问题讨论】:

    标签: java max minimum


    【解决方案1】:

    将您的代码更改为

    int smallest = Integer.MAX_VALUE;
    int largest = Integer.MIN_VALUE;
    

    所以当你在寻找最小的数字时,它会将最大整数值与当前元素进行比较——这肯定是小于或等于的。所以最小的要么是正确的,要么会被更新。类比为最大值。

    顺便说一句,这两个必须在循环之外声明。

    【讨论】:

      【解决方案2】:

      首先,您需要将minmax 变量移出循环。

      那么你应该修复在实现min/max时的经典错误:你应该要么

      • Integer.MAX_VALUEmax 开始minInteger.MIN_VALUE,或
      • minmax 从输入的第一个值开始。

      我更喜欢第二种方法,因为它将显式初始化排除在代码之外:

      int min = 0, max = 0, i = 0;
      while (i < 5) {
          System.out.println("Enter number: "+(i+1));
          Scanner input = new Scanner(System.in);
          if (i == 0) {
              min = max = input;
          } else {
              ... // Do the conditions to determine if input is a new min or a max
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2016-07-24
        • 2016-11-12
        • 2016-11-02
        • 1970-01-01
        • 2018-05-03
        • 1970-01-01
        • 1970-01-01
        • 2015-02-01
        相关资源
        最近更新 更多