4.24实验:作业查找最大绝对数Java
我正在尝试使用绝对数学打印最大的数字。方法。除了跑步,我得到的号码不同 编写一个输入为三个整数,输出为三个值中最大值(绝对值)的程序 例如:如果输入为: 10-30 29 输出为: 三十4.24实验:作业查找最大绝对数Java,java,Java,我正在尝试使用绝对数学打印最大的数字。方法。除了跑步,我得到的号码不同 编写一个输入为三个整数,输出为三个值中最大值(绝对值)的程序 例如:如果输入为: 10-30 29 输出为: 三十 如果引入另一个变量(如果允许的话),可以简化条件。此外,您还需要在设置每个输入时获取它们的绝对值,以便所有比较都使用正整数完成。这是我用过的,效果很好 import java.util.Scanner; public class LabProgram { public static void main
如果引入另一个变量(如果允许的话),可以简化条件。此外,您还需要在设置每个输入时获取它们的绝对值,以便所有比较都使用正整数完成。这是我用过的,效果很好
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x = Math.abs(in.nextInt());
int y = Math.abs(in.nextInt());
int z = Math.abs(in.nextInt());
int largest = x;
if (y > largest) {
largest = y;
}
if (z > largest) {
largest = z;
}
System.out.print(largest);
}
}
如果你对使用三元运算符感兴趣的话,可以把事情缩小一点
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x = Math.abs(in.nextInt());
int y = Math.abs(in.nextInt());
int z = Math.abs(in.nextInt());
int largest = x > y ? x : y;
largest = z > largest ? z : largest;
System.out.print(largest);
}
}
如果你可以使用,那么我假设你可以使用,这样问题就可以像
Scanner in = new Scanner(System.in);
int x = in.nextInt(), y = in.nextInt(), z = in.nextInt();
System.out.println(Math.max(Math.max(Math.abs(z), Math.abs(y)), Math.abs(x)));
至于您当前的代码,您正在比较原始值(而不是绝对值),您可能应该以else
结束(因此您有一个默认结果)-
下面是一个使用三元运算符解决类似问题的方法。一种方法用于查找最大数,另一种方法用于查找三个数中的最小数
import java.util.Scanner;
public class LabProgram {
public static int largestNumber(int num1, int num2, int num3){
int largestNumber = num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);
return largestNumber;
}
public static int smallestNumber(int num1, int num2, int num3){
int smallestNumber = num3<(num1<num2?num1:num2)?num3:(num1<num2?num1:num2);
return smallestNumber;
}
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int a = scnr.nextInt();
int b = scnr.nextInt();
int c = scnr.nextInt();
System.out.println("largest: " + largestNumber(a,b,c));
System.out.println("smallest: " + smallestNumber(a,b,c));
}
}
import java.util.Scanner;
公共类实验室计划{
公共静态最大整数(整数m1、整数m2、整数m3){
int largestNumber=num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);
返回最大数量;
}
公共静态int smallestNumber(int num1、int num2、int num3){
int smallestNumber=num3我建议您阅读一下Math.abs的功能。它不返回数字的绝对值吗?您知道这里的分号:else if(z>x&&z>y);{…
短路else条件不起作用。打印29只需取x、y、z的绝对值,然后取其中的最大值..so-30->+30等!了解整数有最小值和最大值非常有用..使用第四个变量并设置为最小值-然后检查每个值,如果x、y或z的值大于第四个变量,则替换第四个值。打印时结束。设计得很好,我认为我的问题是没有为声明正确放置Math.abs。相反,在if和else if语句后面和下面不会打印最大的数字。这似乎很好。谢谢!!我明白了。非常感谢。
if (Math.abs(x) > Math.abs(y) && Math.abs(x) > Math.abs(z)) {
System.out.print(Math.abs(x));
} else if (Math.abs(y) > Math.abs(x) && Math.abs(y) > Math.abs(z)) {
System.out.print(Math.abs(y));
} else { // you want a default case, and if you get here 'z' is it.
System.out.print(Math.abs(z));
}
import java.util.Scanner;
public class LabProgram {
public static int largestNumber(int num1, int num2, int num3){
int largestNumber = num1>num2?(num1>num3?num1:num3):(num2>num3?num2:num3);
return largestNumber;
}
public static int smallestNumber(int num1, int num2, int num3){
int smallestNumber = num3<(num1<num2?num1:num2)?num3:(num1<num2?num1:num2);
return smallestNumber;
}
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int a = scnr.nextInt();
int b = scnr.nextInt();
int c = scnr.nextInt();
System.out.println("largest: " + largestNumber(a,b,c));
System.out.println("smallest: " + smallestNumber(a,b,c));
}
}