如何使用If语句对数字进行排序(Java)

Cod*_*ews 8 java sorting if-statement

我知道您可以使用数组轻松地对数字进行排序,但我的类分配是我需要使用if语句不是数组按降序对四个数字进行排序.

到目前为止,这是我的代码:

package integersort;

import java.util.Scanner;

public class IntegerSort {

public static void main(String[] args) {
    Scanner userInput = new Scanner(System.in);

    int firstNum, secondNum, thirdNum, fourthNum; //inputted numbers

    System.out.println("Enter first number:");
    firstNum = userInput.nextInt();
    System.out.println("Enter second number:");
    secondNum = userInput.nextInt();
    System.out.println("Enter third number:");
    thirdNum = userInput.nextInt();
    System.out.println("Enter fourth number:");
    fourthNum = userInput.nextInt();


    int firstPlace = 0, secondPlace = 0, thirdPlace = 0, fourthPlace = 0;

    //firstPlace start
    if (firstNum > secondNum && firstNum > thirdNum && firstNum > fourthNum) {
        firstPlace = firstNum;
    } else if (secondNum > firstNum && secondNum > thirdNum && secondNum > fourthNum) {
        firstPlace = secondNum;
    } else if (thirdNum > firstNum && thirdNum > secondNum && thirdNum > fourthNum) {
        firstPlace = thirdNum;
    } else if (fourthNum > firstNum && fourthNum > secondNum && fourthNum > thirdNum) {
        firstPlace = fourthNum;
    }
    //firstPlace end

    //fourthPlace start
    if (firstNum < secondNum && firstNum < thirdNum && firstNum < fourthNum) {
        fourthPlace = firstNum;
    } else if (secondNum < firstNum && secondNum < thirdNum && secondNum < fourthNum) {
        fourthPlace = secondNum;
    } else if (thirdNum < firstNum && thirdNum < secondNum && thirdNum < fourthNum) {
        fourthPlace = thirdNum;
    } else if (fourthNum < firstNum && fourthNum < secondNum && fourthNum < thirdNum) {
        fourthPlace = fourthNum;
    }
    //forthPlace end

    //secondPlace start
    if (firstNum != firstPlace && firstNum != fourthPlace && firstNum < firstPlace && firstNum > fourthPlace && firstNum > fourthNum) {
        secondPlace = firstNum;
    } else if (secondNum != firstPlace && secondNum != fourthPlace && secondNum > firstNum && secondNum > thirdNum && secondNum > fourthNum) {
        secondPlace = secondNum;
    } else if (thirdNum != firstPlace && thirdNum != fourthPlace && thirdNum > firstNum && thirdNum > secondNum && thirdNum > fourthNum) {
        secondPlace = thirdNum;
    } else if (fourthNum != firstPlace && fourthNum != fourthPlace && fourthNum > firstNum && fourthNum > secondNum && fourthNum > thirdNum) {
        secondPlace = fourthNum;
    }
    //secondPlace end

    //thirdPlace start
    if (firstNum != firstPlace && firstNum != secondPlace && firstNum != fourthPlace) {
        thirdPlace = firstNum;
    } else if (secondNum != firstPlace && secondNum != secondPlace && secondNum != fourthPlace) {
        thirdPlace = secondNum;
    } else if (thirdNum != firstPlace && thirdNum != secondPlace && thirdNum != fourthPlace) {
        thirdPlace = thirdNum;
    } else if (fourthNum != firstPlace && fourthNum != secondPlace && fourthNum != fourthPlace){
        thirdPlace = fourthNum;
    }
    //thirdPlace end

    System.out.println("The sorted numbers are: "+ firstPlace + " " + secondPlace + " " + thirdPlace + " " + fourthPlace);
    }
}
Run Code Online (Sandbox Code Playgroud)

从这段代码中,我继续按降序排列数字,但是剩下一个数字,如零所示,所以我知道某些事情并不顺利.

示例I/O: 当输入 40,52,6 和7000时,当预期输出为7000,52,40,6时输出7000,0,40,6.

不知道我做错了什么,但我想知道,所以我可以得到一个不错的成绩.

谢谢.

smo*_*ers 1

这是发现第二名的一种方法:

int storeFirstNum = 0;
int storeSecondNum = 0;
int storeThirdNum = 0;
int storeFourthNum = 0;

// secondPlace start
if (firstNum != firstPlace && firstNum != fourthPlace) {
    storeFirstNum = firstNum;
}
if (secondNum != firstPlace && secondNum != fourthPlace) {
    storeSecondNum = secondNum;
}
if (thirdNum != firstPlace && thirdNum != fourthPlace) {
    storeThirdNum = thirdNum;
}
if (fourthNum != firstPlace && fourthNum != fourthPlace) {
    storeFourthNum = fourthNum;
}
if (storeFirstNum > storeSecondNum && storeFirstNum > storeThirdNum
        && storeFirstNum > storeFourthNum) {
    secondPlace = storeFirstNum;
} else if (storeSecondNum > storeFirstNum
        && storeSecondNum > storeThirdNum
        && storeSecondNum > storeFourthNum) {
    secondPlace = storeSecondNum;
} else if (storeThirdNum > storeFirstNum
        && storeThirdNum > storeSecondNum
        && storeThirdNum > storeFourthNum) {
    secondPlace = storeThirdNum;
} else if (storeFourthNum > storeFirstNum
        && storeFourthNum > storeSecondNum
        && storeFourthNum > storeThirdNum) {
    secondPlace = storeFourthNum;
}
// secondPlace end
Run Code Online (Sandbox Code Playgroud)

结果截图:

在此输入图像描述