题目描述:
输入三个整数x,y,z,请把这三个数由小到大输出。
输入
输入数据包含3个整数x,y,z,分别用逗号隔开。
输出
输出由小到大排序后的结果,用空格隔开。
样例输入
2,1,3
样例输出
1 2 3
解答:
//方法一:自己使用冒泡或选择排序来进行排序
public static void main(String [] args)
{
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();;
int c = in.nextInt();;
int temp = 0;
while (true) {
if (a > b) {
temp = b;
b = a;
a = temp;
}
if (b > c) {
temp = c;
c = b;
b = temp;
}
if (a < b && b < c) //一直循环直到满足条件
{
break;
}
}
System.out.println(a + " " + b + " " + c);
// Scanner in=new Scanner(System.in);
// int a[]=new int [3];
// for(int i=0;i<3;i++)
// {
// a[i]=in.nextInt();
// }
// if(a[0]>a[1])
// {
// if(a[1]>a[2])
// {
// System.out.print(a[2]+" "+a[1]+" "+a[0]);
// }
// else if(a[2]>a[0])
// {
// System.out.print(a[1]+" "+a[0]+" "+a[2]);
// }
// else
// {
// System.out.print(a[1]+" "+a[2]+" "+a[0]);
// }
// }
// else
// {
//
// if(a[0]>a[2])
// {
// System.out.print(a[2]+" "+a[0]+" "+a[1]);
// }
// else if(a[2]>a[1])
// {
// System.out.print(a[0]+" "+a[1]+" "+a[2]);
// }
// else
// {
// System.out.print(a[0]+" "+a[2]+" "+a[1]);
// }
// }
}
}
//方法二:使用数组工具类进行排序
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.nextLine();// 录入字符串
String[] strs = str.split(",");// 使用正则表达式进行分割
int[] is = new int[strs.length];
for (int i = 0; i < strs.length; i++) {// 遍历String数组,赋值给int数组
is[i] = Integer.parseInt(strs[i]);
}
Arrays.sort(is);// 使用数组工具类进行排序
StringBuffer sb = new StringBuffer();
for (int i = 0; i < is.length; i++) {// 遍历进行拼接
if (i == is.length - 1) {
sb.append(is[i]);
}
else {
sb.append(is[i] + " ");
}
}
System.out.println(sb.toString());
}
方法一在eclipse里可以运行不出错,一拿到在线平台就提示Running Error。原因不明,猜想可能是因为没输入逗号的原因;
方法二均可。
哪位仁兄了解的请赐教一下,小弟不胜感激。