Java 使用分支if-else语句进行排序
我一直在1/3上得到不正确的输出。当我输入132或231时,所需的输出是123。当我输入321时,输出是132,我在这里缺少什么Java 使用分支if-else语句进行排序,java,Java,我一直在1/3上得到不正确的输出。当我输入132或231时,所需的输出是123。当我输入321时,输出是132,我在这里缺少什么 import java.util.Scanner; public class Proj3 { private static int min; private static int max; private static int mid; public static void main (String[] args){
import java.util.Scanner;
public class Proj3 {
private static int min;
private static int max;
private static int mid;
public static void main (String[] args){
Scanner keyboard = new Scanner( System.in);
System.out.println("Enter three whole numbers <integers> to be sorted");
int n1 = keyboard.nextInt();
int n2 = keyboard.nextInt();
int n3 = keyboard.nextInt();
if (n1 <= n2 && n1 <= n3){
min = n1;
if (n2 <= n3){
mid = n2;
max = n3;
} else{
mid = n3;
max = n2;
}
}
else if(n2 <= n3){
min = n3;
mid = n1;
max = n2;
}else{
min = n3;
mid = n1;
max = n2;
}
System.out.println("Here are the three numbers sorted:"+min+""+mid+""+max+"");
}
}
import java.util.Scanner;
公共类项目3{
私有静态int-min;
私有静态int max;
私有静态int mid;
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入要排序的三个整数”);
int n1=keyboard.nextInt();
int n2=keyboard.nextInt();
int n3=keyboard.nextInt();
if(n1而不是分支if,您可以使用Math.min
和Math.max
来获得最小和最大数字(中间的数字将是剩下的唯一数字)您忘记了if分支。对于在else块中运行的输入321,这会导致输出。请尝试找出您忘记的是哪种情况,并将其添加为另一种else if情况
编辑:
如果n1>n2,它是比n3小还是比n3大还不清楚。这是我的解决方案。我感谢那些帮助我思考这个@ZouZou,@ROT13,@Laf的人
else if(n2 >= n3 && n2 <= n1){
max = n1;
mid = n2;
min = n3;}
else如果(n2>=n3&&n2您可以稍微更改代码并使用数组。从扫描仪读入值,然后将其添加到数组中。从数组中,您可以使用将自动按顺序排列数字的.sort()
方法
Scanner input = new Scanner(System.in); // Starts scanner
int[] numbers = new int[3]; // Sets length to 3
for (int i = 0; i < numbers.length; i++) // Loops length
{
System.out.println("Please enter number"); // Asks for input
numbers[i] = input.nextInt(); // Adds to array
}
Scanner input=新扫描仪(System.in);//启动扫描仪
int[]number=new int[3];//将长度设置为3
for(int i=0;i
对值进行排序后,可以调用int[]上的.sort()
方法
array。我希望这是有意义的。你可以使用所有的if语句,但为什么要让它变得比应该的更难呢?如果你需要任何帮助,请告诉我。在调试器中跟踪代码可能有助于你直观地看到代码中发生了什么,错误对你来说是显而易见的。或者用笔和纸来看看你的逻辑有什么问题。