数组问题中的最小值最大值
min max in array issue
所以我编写了一个程序,用于查找五个数字集的最大值和最小值。它在大多数情况下都有效,但是当我输入一组数字(如 {5,6,7,8,9})时,它会输出 9 作为最大值,但输出 0 作为最小值。任何想法或建议。
导入 java.util.Scanner;
public class MinMax {
public static void main (String [] args) {
@SuppressWarnings("resource")
Scanner in = new Scanner (System.in);
final int NUM_ELEMENTS = 5;
double[] userVals = new double[NUM_ELEMENTS];
int i = 0;
double max = 0.0;
double min = 0.0;
System.out.println("Enter five numbers.");
System.out.println();
while (i < NUM_ELEMENTS) {
System.out.println("Enter next number: ");
userVals[i] = in.nextDouble();
i++;
System.out.println();
}
for (i = 0; i < userVals.length; i++) {
if (userVals[i] > max) {
max = userVals[i];
}
else if (userVals[i] < min) {
min = userVals[i];
}
}
System.out.println("Max number: " + max);
System.out.println("Min number: " + min);
}
}
将您的 mind 变量初始化为非零最大值。表示您可以从控制台输入的最大值。
默认 min
为超出范围的数字(如 Double.MAX_VALUE
),max
为 Double.MIN_VALUE
。您还可以通过删除第二个循环来简化代码;您可以在一个循环中执行逻辑,您可以使用 Math.max(double, double)
和 Math.min(double, double)
。像,
Scanner in = new Scanner(System.in);
final int NUM_ELEMENTS = 5;
double[] userVals = new double[NUM_ELEMENTS];
System.out.println("Enter five numbers.");
System.out.println();
double min = Double.POSITIVE_INFINITY;
double max = Double.NEGATIVE_INFINITY;
for (int i = 0; i < NUM_ELEMENTS; i++) {
System.out.println("Enter next number: ");
userVals[i] = in.nextDouble();
min = Math.min(min, userVals[i]);
max = Math.max(max, userVals[i]);
}
System.out.println("Max number: " + max);
System.out.println("Min number: " + min);
所以我编写了一个程序,用于查找五个数字集的最大值和最小值。它在大多数情况下都有效,但是当我输入一组数字(如 {5,6,7,8,9})时,它会输出 9 作为最大值,但输出 0 作为最小值。任何想法或建议。 导入 java.util.Scanner;
public class MinMax {
public static void main (String [] args) {
@SuppressWarnings("resource")
Scanner in = new Scanner (System.in);
final int NUM_ELEMENTS = 5;
double[] userVals = new double[NUM_ELEMENTS];
int i = 0;
double max = 0.0;
double min = 0.0;
System.out.println("Enter five numbers.");
System.out.println();
while (i < NUM_ELEMENTS) {
System.out.println("Enter next number: ");
userVals[i] = in.nextDouble();
i++;
System.out.println();
}
for (i = 0; i < userVals.length; i++) {
if (userVals[i] > max) {
max = userVals[i];
}
else if (userVals[i] < min) {
min = userVals[i];
}
}
System.out.println("Max number: " + max);
System.out.println("Min number: " + min);
}
}
将您的 mind 变量初始化为非零最大值。表示您可以从控制台输入的最大值。
默认 min
为超出范围的数字(如 Double.MAX_VALUE
),max
为 Double.MIN_VALUE
。您还可以通过删除第二个循环来简化代码;您可以在一个循环中执行逻辑,您可以使用 Math.max(double, double)
和 Math.min(double, double)
。像,
Scanner in = new Scanner(System.in);
final int NUM_ELEMENTS = 5;
double[] userVals = new double[NUM_ELEMENTS];
System.out.println("Enter five numbers.");
System.out.println();
double min = Double.POSITIVE_INFINITY;
double max = Double.NEGATIVE_INFINITY;
for (int i = 0; i < NUM_ELEMENTS; i++) {
System.out.println("Enter next number: ");
userVals[i] = in.nextDouble();
min = Math.min(min, userVals[i]);
max = Math.max(max, userVals[i]);
}
System.out.println("Max number: " + max);
System.out.println("Min number: " + min);