Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java-在输入的一组数字中查找最小值/最大值_Java_Max_Minimum - Fatal编程技术网

java-在输入的一组数字中查找最小值/最大值

java-在输入的一组数字中查找最小值/最大值,java,max,minimum,Java,Max,Minimum,使用while循环,我必须执行以下操作: 使用变量“i”,计算输入的整数数量;使用变量“number”,表示输入的数字;使用变量“min”,表示迄今为止输入的最小数字;使用变量“max”,表示迄今为止输入的最大数字。 用户将总共输入5个整数 这是我的代码: import java.util.Scanner; public class MinMax { public static void main(String[] args) { int i = 1; while (i

使用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++;

   }
 }
}
import java.util.Scanner;
公共类极小值
{
公共静态void main(字符串[]args)
{
int i=1;
而(i最大值)
{
最大值=数量;
}
System.out.println(“迄今为止最大的:+max);
i++;
}
}
}
当我运行这个时,“I”、“number”和“maximum”变量似乎都能正常工作。但是,“minimum”变量要记住,“minimum”的设置数是0。有没有办法解决这个问题,这样,如果我在第一个数字中输入数字10,在第二个数字中输入数字2,代码将显示最小值为“2”,而不是“0”

谢谢

将代码更改为

int smallest = Integer.MAX_VALUE;
int largest = Integer.MIN_VALUE;
因此,当您寻找最小的数字时,它会将最大整数值与当前元素进行比较,当前元素肯定更小或相等。因此,它要么是正确的,要么将被更新。类似地,最大值

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

将代码更改为

int smallest = Integer.MAX_VALUE;
int largest = Integer.MIN_VALUE;
因此,当您寻找最小的数字时,它会将最大整数值与当前元素进行比较,当前元素肯定更小或相等。因此,它要么是正确的,要么将被更新。类似地,最大值


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

首先,您需要将
min
max
变量移出循环

然后,您应该修复实现
min
/
max
时的经典错误:您应该

  • Integer.MAX\u值处开始
    min
    ,在
    Integer.min\u值处开始
    MAX
    ,或
  • 在输入的第一个值处同时启动
    min
    max
我更喜欢第二种方法,因为它避免了代码中的显式初始化:

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
    }
}
intmin=0,max=0,i=0;
而(i<5){
System.out.println(“输入编号:”+(i+1));
扫描仪输入=新扫描仪(System.in);
如果(i==0){
最小=最大=输入;
}否则{
…//执行条件以确定输入是新的最小值还是最大值
}
}

首先,您需要将
min
max
变量移出循环

然后,您应该修复实现
min
/
max
时的经典错误:您应该

  • Integer.MAX\u值处开始
    min
    ,在
    Integer.min\u值处开始
    MAX
    ,或
  • 在输入的第一个值处同时启动
    min
    max
我更喜欢第二种方法,因为它避免了代码中的显式初始化:

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
    }
}
intmin=0,max=0,i=0;
而(i<5){
System.out.println(“输入编号:”+(i+1));
扫描仪输入=新扫描仪(System.in);
如果(i==0){
最小=最大=输入;
}否则{
…//执行条件以确定输入是新的最小值还是最大值
}
}