我在这里有代码,但我遇到了问题。
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Please input 3 integers: ");
int w = Integer.parseInt(keyboard.nextLine());
int a = Integer.parseInt(keyboard.nextLine());
int s = Integer.parseInt(keyboard.nextLine());
int max = Math.max(w, a);
if (max > a) {
max = Math.max(a, s);
max = Math.max(a, s);
int min = Math.min(w, a);
if (min > a) {
min = Math.min(a, s);
min = Math.min(a, s);
}
} else {
max = Math.max(a, s);
}
System.out.println("The max of three is: " + max);
System.out.println("the minimum of the three is: " + min);
}
答案 0 :(得分:1)
int maximum = Math.max(w, Math.max(a, s));
int minimum = Math.min(w, Math.min(a, s));
答案 1 :(得分:1)
请注意,您不需要读取行,然后将其解析为整数。您可以使用scanner.nextInt()方法。考虑到这一点,您的程序将如下所示:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n1 = scanner.nextInt();
int n2 = scanner.nextInt();
int n3 = scanner.nextInt();
int max = Math.max(n1, n2);
max = Math.max(max, n3);
System.out.println("Max: " + max);
int min = Math.min(n1, n2);
min = Math.min(min, n3);
System.out.println("Min: " + min);
}
答案 2 :(得分:0)
这不是真正需要改进的编程,而是思考。
所以让我们从“w”开始吧。一旦进入,您就知道这是当前的最大和最小数量。
所以马上罢了。您可以声明max = w和min = w。
这样你就有了自己的出发点。剩下的练习是确定剩下的数字是否可以击败“w”作为最大值或最小值。
接下来,将“a”与存储在“max”中的当前最大值进行比较。哪一个最大? max = Math.max(max,a);
如果是“a”,则max将变为“a”。如果a小于当前最大值,则max将保持不变。
现在你可以用“s”做同样的事了。 max = Math.max(max,s);
现在您已经完成了所有输入,剩下的就是最大值。您可以打印出变量“max”,然后就完成了。
完全相同的最小值,你也会得到最小值。
另一方给出的编程答案是正确的方法,我希望这可以解释为什么这些是很好的方法。
考虑每一步以及您希望如何实现目标。将其拆分为可管理的步骤,例如找到最大值然后找到最小值。您不必一次尝试解决所有问题。一旦你弄明白每一个,你就可以轻松地将它们组合成更有效的东西,就像@Michael提供的那样。
但第一个关键是理解为什么,而不是如何。