谁能给我个算法 如何比较四个数的大小
   条件: 不能用数组 不能用循环 只能用if语句
   谢谢各位啦~~

解决方案 »

  1.   


    public class Test {
    public static void main(String[] args) {
    int a = 10,b=14,c=8,d=20;
    int max1 = (a > b) ? a : b;
    int max2 = (c > d) ? c : d;
    int min1 = (a < b) ? a : b;
    int min2 = (c < d) ? c : d;
    int max11 = (max1 > max2) ? max1 : max2;
    int max12 = (min1 > min2) ? min1 : min2;
    int result = (max11 > max12) ? max11 : max12;
    System.out.println(result);
    }
    }
      

  2.   

    3L的朋友啊~~用我的要求是用if来完成 你这啥啊
      

  3.   

    public class Demo {
    public static void main(String[] args) {
    int a = 1, b = 8, c = 9, d = 0;
    int max = 0;
    if(a > b)
    max = a;
    if(max < c)
    max = c;
    if(max < d)
    max = d;
    System.out.println(max); }}
      

  4.   

    5L的MM 你这也不对啊~我要求按由大到小输出~……
      

  5.   

    public class test {
    public static void main(String[] args) {
    int a = 10, b = 11, c = 9, d =12;
    if ( a < b ){
    a ^= b;
    b ^= a;
    a ^= b;
    }
    if ( c < d) {
    c ^= d;
    d ^= c;
    c ^= d;
    }

    if ( a < c)  {
    a ^= c;
    c ^= a;
    a ^= c;
    } if (b < d) {
    b ^= d;
    d ^= b;
    b ^= d;
    } if (b < c) {
    b ^= c;
    c ^= b;
    b ^= c;
    }
    System.out.println(a + " " + b + " " + c + " " + d); 
    }
      

  6.   

    四个数还好吧
    max(max(a, b), max(c, d));
    min(max(a, b), max(c, d));
    max(min(a, b), min(c, d));
    min(min(a, b), min(c, d));int max(int a, int b)
    {
        return a>=b?a:b;
    }
    int min(int a, int b)
    {
        return a<=b?a:b;
    }
      

  7.   

    这个对。。我也是JAVA新手。。请教11楼大虾。。 
     if ( a < b ){
                            a ^= b;
                            b ^= a;
                            a ^= b;
                    }
    什么意思。。if第一个分号执行true;第二个分号执行false;第三个分号是执行什么?
      

  8.   

    噢。。我看懂了。。都是执行true。。少看个{}。但是a = a^b我还是不懂。。异或不是只有true和false之间才能用么?
      

  9.   


    a ^= b;
    b ^= a;
    a ^= b;是无中间变量交换2个数a ^=b // 是a = a ^ b;怎么会是返回true呢,这是bitwise的赋值例如:
    a = 2; b = 3;
    0010  0011
    a = a ^ b = 0010 ^ 0011 = 0001
    b = a ^ b = 0001 ^ 0011 = 0010 = 2
    a = a ^ b = 0001 ^ 0010 = 0011 = 3
      

  10.   

    补充一下,只有:
    boolean a = true;
    boolean b = false;a ^ b  = true; 
    而当
    a,b为int的时候,a ^ b 就是bitwise operator
      

  11.   

    还没学到bitwise...哈哈见笑了。。我只知道^是异或。。
      

  12.   

    public static void main(String[] args) {
    System.out.println("请输入数字");
    Scanner input=new Scanner(System.in);
    int a=input.nextInt();
    int b=input.nextInt();
    int c=input.nextInt();
    int d=input.nextInt();
    int t;
    if(a>b){
    t=a;a=b;b=t;
    }
    if(a>c){
    t=a;a=c;c=t;
    }
    if(a>d){
    t=a;a=d;d=t;
    }
    if(b>c){
    t=b;b=c;c=t;
    }
    if(b>d){
    t=b;b=d;d=t;
    }
    if(c>d){
    t=c;c=d;d=t;
    }
    System.out.println(a + " " + b + " " + c + " " + d); 

    }