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.
不知道我做错了什么,但我想知道,所以我可以得到一个不错的成绩.
谢谢.
这是发现第二名的一种方法:
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)
结果截图: