随机输入三个数,要求他们从大到小的顺序从控制台输出,用Java语言程序来解决。
------最佳解决方案--------------------------------------------------------
import java.io.*;
public class InputTest {
public static void sort(double[] a)
{
for(int i=0;i<a.length-1;i++)
for(int j=i+1;j<a.length;j++)
{
if(a[i]<a[j])
{
double temp;
temp=a[i];a[i]=a[j];a[j]=temp;
}
}
}
public static void main(String[] args)
{
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in));
double[] array=new double[3];
try{
for(int i=0;i<array.length;i++)
{
System.out.println("请输入第"+(i+1)+"个数");
array[i]=Double.parseDouble(stdin.readLine());
}
}catch(Exception e){}
sort(array);
System.out.print("排序后的结果为:");
for(int i=0;i<array.length;i++)
System.out.print(array[i]+" ");
}
}
像这种小程序应该多练习,靠自己才是王道。
------其他解决方案--------------------------------------------------------
完美版,有输入校验功能,并且扩展为可输入N个数字,代码极限优化
public static void main(String[] args) {
String input = null;
Scanner in = new Scanner(System.in);
System.out.println("请输入n个数字,数字之间用空格分隔,如:12.34 34 -4");
while(!(input = in.nextLine()).matches("^(\\s*-?\\d+(\\.\\d+)?\\s*)+$"))
System.out.println("输入有误,请重输");
List<BigDecimal> result = new LinkedList<BigDecimal>();
for (String s : input.trim().split("\\s+"))
result.add(new BigDecimal(s));
Collections.sort(result, new Comparator<BigDecimal>() {
@Override
public int compare(BigDecimal o1, BigDecimal o2) {
return o2.compareTo(o1);
}
});
System.out.println(result);
}
------其他解决方案--------------------------------------------------------
从题目看出来楼主还是个菜鸟,你整出这么个难理解的他估计消化不了。简单易懂才是他需要的。
------其他解决方案--------------------------------------------------------
楼主可以分三部解决第一部生成三个随机数 第二部排序 第三部显示
------其他解决方案--------------------------------------------------------
把这三个数,放进array. 用Array.sort(). 然后输出
------其他解决方案--------------------------------------------------------
代码即艺术,多看看精短的优美的代码是有好处的
不过,这段代码里确实用了几个很偏门的方式,对初学者来说可能比较难看懂
------其他解决方案--------------------------------------------------------