新手在这里。我已经弄清楚如何从最高到最低排列数字,但它似乎是一种非常低效的方法,特别是对于较大的数字组。我尝试从最高到最低排列五个数字(由用户输入),整个事情从那里开始膨胀;下面是该程序的不完整代码。它仅在第一个数字也具有最高值时才有效。
请告诉我有更快的方法。
import java.io.*;
import javax.swing.JOptionPane;
class Integers
{
public static void main(String [] args) throws Exception
{
String str1 = JOptionPane.showInputDialog("Please enter the first number.");
String str2 = JOptionPane.showInputDialog("Please enter the second number.");
String str3 = JOptionPane.showInputDialog("Please enter the third number.");
String str4 = JOptionPane.showInputDialog("Please enter the fourth number.");
String str5 = JOptionPane.showInputDialog("Please enter the fifth number.");
int a = Integer.parseInt(str1);
int b = Integer.parseInt(str2);
int c = Integer.parseInt(str3);
int d = Integer.parseInt(str4);
int e = Integer.parseInt(str5);
// 1 abcde
if ((a>b) && (b>c) && (c>d) && (d>e))
{
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
// 2 abced
if ((a>b) && (b>c) && (c>e) && (e>d))
{
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(e);
System.out.println(d);
}
// 3 abdce
if ((a>b) && (b>d) && (d>c) && (c>e))
{
System.out.println(a);
System.out.println(b);
System.out.println(d);
System.out.println(c);
System.out.println(e);
}
// 4 abdec
if ((a>b) && (b>d) && (d>e) && (e>c))
{
System.out.println(a);
System.out.println(b);
System.out.println(d);
System.out.println(e);
System.out.println(c);
}
// 5 abecd
if ((a>b) && (b>e) && (e>c) && (c>d))
{
System.out.println(a);
System.out.println(b);
System.out.println(e);
System.out.println(c);
System.out.println(d);
}
// 6 abecd
if ((a>b) && (b>e) && (e>c) && (c>d))
{
System.out.println(a);
System.out.println(b);
System.out.println(e);
System.out.println(c);
System.out.println(d);
}
// 7 acbde
if ((a>c) && (c>b) && (b>d) && (d>e))
{
System.out.println(a);
System.out.println(c);
System.out.println(b);
System.out.println(d);
System.out.println(e);
}
// 8 acbed
if ((a>c) && (c>b) && (b>e) && (e>d))
{
System.out.println(a);
System.out.println(c);
System.out.println(b);
System.out.println(e);
System.out.println(d);
}
// 9 acdbe
if ((a>c) && (c>d) && (d>b) && (b>e))
{
System.out.println(a);
System.out.println(c);
System.out.println(d);
System.out.println(b);
System.out.println(e);
}
// 10 acdeb
if ((a>c) && (c>d) && (d>e) && (e>b))
{
System.out.println(a);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(b);
}
// 11 acebd
if ((a>c) && (c>e) && (e>b) && (b>d))
{
System.out.println(a);
System.out.println(c);
System.out.println(e);
System.out.println(b);
System.out.println(d);
}
// 12 acedb
if ((a>c) && (c>e) && (e>d) && (d>b))
{
System.out.println(a);
System.out.println(c);
System.out.println(e);
System.out.println(d);
System.out.println(b);
}
// 13 adbce
if ((a>d) && (d>b) && (b>c) && (c>e))
{
System.out.println(a);
System.out.println(d);
System.out.println(b);
System.out.println(c);
System.out.println(e);
}
// 14 adbec
if ((a>d) && (d>b) && (b>e) && (e>c))
{
System.out.println(a);
System.out.println(d);
System.out.println(b);
System.out.println(e);
System.out.println(c);
}
// 15 adcbe
if ((a>d) && (d>c) && (c>b) && (b>e))
{
System.out.println(a);
System.out.println(d);
System.out.println(c);
System.out.println(b);
System.out.println(e);
}
// 16 adceb
if ((a>d) && (d>c) && (c>e) && (e>b))
{
System.out.println(a);
System.out.println(d);
System.out.println(c);
System.out.println(e);
System.out.println(b);
}
// 17 adebc
if ((a>d) && (d>e) && (e>b) && (b>c))
{
System.out.println(a);
System.out.println(d);
System.out.println(e);
System.out.println(b);
System.out.println(c);
}
// 18 adecb
if ((a>d) && (d>e) && (e>c) && (c>b))
{
System.out.println(a);
System.out.println(d);
System.out.println(e);
System.out.println(c);
System.out.println(b);
}
// 19 adecb
if ((a>d) && (d>e) && (e>c) && (c>b))
{
System.out.println(a);
System.out.println(d);
System.out.println(e);
System.out.println(c);
System.out.println(b);
}
// 20 aebdc
if ((a>e) && (e>b) && (b>d) && (d>c))
{
System.out.println(a);
System.out.println(e);
System.out.println(b);
System.out.println(d);
System.out.println(c);
}
// 21 aecbd
if ((a>e) && (e>c) && (c>b) && (b>d))
{
System.out.println(a);
System.out.println(e);
System.out.println(c);
System.out.println(b);
System.out.println(d);
}
// 22 aecdb
if ((a>e) && (e>c) && (c>d) && (d>b))
{
System.out.println(a);
System.out.println(e);
System.out.println(c);
System.out.println(d);
System.out.println(b);
}
// 23 aedbc
if ((a>e) && (e>d) && (d>b) && (b>c))
{
System.out.println(a);
System.out.println(e);
System.out.println(d);
System.out.println(b);
System.out.println(c);
}
// 24 aedcb
if ((a>e) && (e>d) && (d>c) && (c>b))
{
System.out.println(a);
System.out.println(e);
System.out.println(d);
System.out.println(c);
System.out.println(b);
}
}
}
答案 0 :(得分:1)
您应该使用数组:
int[] numbers = new int[5];
然后遍历数组并在每个索引处分配值。如果您有意对数组进行排序,请调用Arrays.sort(numbers);
答案 1 :(得分:0)
使用Array
或List
存储int
值并对Array
或List
进行排序。
如果是,请使用Array
int[] arr=new int[5];
Arrays.sort(arr);
如果是,请使用List
List<Integer> list=new ArrayList<>();
Collections.sort(list);
然后您将按升序排列值。要按降序排列,您可以按相反的顺序获取值。
答案 2 :(得分:0)
一种方法是:
import java.util.Arrays;
import java.util.Collections;
import javax.swing.JOptionPane;
... // Class declaration
public static void main(String[] args) throws Exception
{
String str1 = JOptionPane.showInputDialog("Please enter the first number.");
String str2 = JOptionPane.showInputDialog("Please enter the second number.");
String str3 = JOptionPane.showInputDialog("Please enter the third number.");
String str4 = JOptionPane.showInputDialog("Please enter the fourth number.");
String str5 = JOptionPane.showInputDialog("Please enter the fifth number.");
Integer[] arr = new Integer[5]; // Use an array
arr[0] = Integer.parseInt(str1);
arr[1] = Integer.parseInt(str2);
arr[2] = Integer.parseInt(str3);
arr[3] = Integer.parseInt(str4);
arr[4] = Integer.parseInt(str5);
Arrays.sort(arr, Collections.reverseOrder());
for (int i : arr)
System.out.println(i);
}
注意:强>
数组arr
的类型为Integer
(在Java中,int
类型是基元,而Integer
类型是对象。您可能希望更多地搜索该类型)以降序模式使用Arrays.sort
方法。
答案 3 :(得分:0)
这可能会有所帮助:)
public static void main(String[] args) throws Exception
{
List<Integer> list=new ArrayList<Integer>();
String NumStr="";
do{
NumStr = JOptionPane.showInputDialog("Please enter a number.");
try {
list.add(Integer.parseInt(NumStr));
} catch (NumberFormatException numberFormatException) {
NumStr="";
}
}while(!"".equals(NumStr));
Collections.sort(list);
for (int i : list)
System.out.println(i);
}
程序在输入空字符串或字母时终止