使用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”变量似乎都能正常工作。但是,“minimum”变量要记住,“minimum”的设置数是0。有没有办法解决这个问题,这样,如果我在第一个数字中输入数字10,在第二个数字中输入数字2,代码将显示最小值为“2”,而不是“0”?
谢啦!
首先,需要将变量从循环中移出。
然后,您应该修复实现最小值/最大值时的经典错误:您应该
我更喜欢第二种方法,因为它将显式初始化排除在代码之外:
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
}
}
将代码更改为
int smallest = Integer.MAX_VALUE;
int largest = Integer.MIN_VALUE;
因此,当您寻找最小的数字时,它会将最大整数值与当前元素进行比较——当前元素肯定更小或相等。所以最小要么是正确的,要么是更新的。类比为最大。
顺便说一下,这两个必须在循环之外声明。
以下是任务的具体要求: “首先,启动NetBeans并关闭之前可能打开的所有项目(在顶部菜单“转到文件”)== 然后创建一个名为“MinMax”(不带引号)的新Java应用程序,该应用程序声明一个长度为5的双精度数组,并使用方法使用来自命令行的用户输入填充数组,并打印出数组中的max(最高)和min(最低)值。确定最大值和最小值的方法可能不使用Java中的任何内置排序方法。也就是说,您需要在这些方
问题内容: 我正在尝试创建两种方法,一种找到对象数组中的最小值,另一种找到对象数组中第二个最小值。 我已经这样写了两个 我已经找到了如何找到最小的值,我只需要找到第二个最小的值,我不确定怎么做。 有任何想法吗?谢谢! 问题答案: 像这样的东西:
主要内容:普通算法,分治算法程序中,我们经常使用数组(列表)存储给定的线性序列(例如 {1,2,3,4}),那么如何查找数组(序列)中的最大值或者最小值呢? 查找数组(序列)中最大值或最小值的算法有很多,接下来我们以 {3,7,2,1} 序列为例讲解两种查找最值的算法,一种是普通算法,另一种是借助 分治算法解决。 普通算法 普通算法的解决思路是:创建两个变量 max 和 min 分别记录数组中的最大值和最小值,它们的初始值都
问题内容: 我的代码没有给出错误,但是没有显示最小值和最大值。代码是: 我是否需要system.out.println()来显示它,否则返回应该起作用吗? 问题答案: 您正在调用方法,但不使用返回的值。
问题内容: 我正在尝试在数组中找到数字的最小值,但并非总是能正常工作。这是我写的代码: 有人可以纠正我吗? 问题答案: 不需要外部循环,它只运行一次,并且无论如何您都不会使用。你为什么有它? 对于内部循环,您需要与最小值进行比较。现在,您正在将其与数组中的第一个元素(不一定是最小值)进行比较。 另外,您可以从1开始循环,因为您不需要与自身进行比较(它只分配给)
给定一个非负整数数组,设计最简单的算法来找到最大大小的子数组,并将其加到最小的值。 我的想法是,因为它们是非负整数,所以和最小的数组总是单个单元数组,只有原始数组的最小值。如果我理解正确的话,它取决于什么具有更高的优先级,具有更高的长度或更小的值。然而,这个问题从来没有明确说明哪一个优先。 我在这个问题上是正确的,还是我遗漏了什么?