我在试着把数字按升序排列。当我进入控制台并输入一个数字时,数字会打印出来,但不是按升序排列的,只是我输入的数字in.What我做错了吗?
import java.util.*;
public class BigLittle{
public static void main(String[]args){
Scanner in=new Scanner(System.in);
int a=0;
int b=0;
int c=0;
System.out.print("Enter 3 Numbers");
a=in.nextInt();
b=in.nextInt();
c=in.nextInt();
if (a>b&&b>c)
System.out.print(c);
if (a>c) {
System.out.print(b);
System.out.print(a);
}
if (b<a&&b<c)
System.out.print(b);
else {
System.out.print(a);
System.out.print(c);
}
if (c>a&&a<b)
System.out.print(a);
if (b<c){
System.out.print(c+b+a);
}
}
}
发布于 2018-09-19 04:29:19
将输入的数字放入列表中,然后对列表进行排序:
List<Integer> list = new ArrayList<>();
Scanner in=new Scanner(System.in);
System.out.print("Enter 3 Numbers: ");
list.add(in.nextInt());
list.add(in.nextInt());
list.add(in.nextInt());
Collections.sort(list);
for ( Integer i : list )
{
System.out.println(i);
}
发布于 2018-09-19 04:32:58
首先,如果c = 8
、b = 4
和a = 1
if将使用行System.out.print(c+b+a);
打印13
此外,如果a=b=c
不打印任何内容,或者a=b
、b=c
或a=c
的任何组合,则存在一些未定义的打印。
如果你想要一个简单的架构,试着把一个数组或3个变量放入其中,然后只在计算结束时打印出来。
发布于 2018-09-19 06:58:06
对于三个不同的数字a, b, c
,有6种可能的排列:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
让我们首先使用a & b
之间的关系将它们划分为2个集合
a < b
1 2 3
1 3 2
2 3 1
a > b
2 1 3
3 1 2
3 2 1
现在让我们通过考虑b & c
之间的关系来进一步划分这两个集合
a < b
b < c
1 2 3
b > c
1 3 2
2 3 1
a > b
b < c
2 1 3
3 1 2
b > c
3 2 1
我们看到,在(a < b and b < c)
和(a > b and b > c)
的情况下,我们可以唯一地确定顺序。对于其余情况,我们需要考虑a & c
之间的关系
a < b
b < c
1 2 3
b > c
a < c
1 3 2
a > c
2 3 1
a > b
b < c
a < c
2 1 3
a > c
3 1 2
b > c
3 2 1
由此,我们可以开发以下伪代码:
if a < b
if b < c
order: a b c
else
if a < c
order: a c b
else
order: c a b
else
if b < c
if a < c
order: b a c
else
order: b c a
else
order: c b a
您应该能够将其转换为Java代码。
https://stackoverflow.com/questions/52393970
复制相似问题