用 ?: 操作符,获得a、b、c三个数中最大的那个?

解决方案 »

  1.   

    (a>b)?((a>c)?a:c):((b>c)?b:c);
      

  2.   

    如果是整数
    (a/b==0?b:a)/c==0?c:(a/b==0?b:a)
    大于小于号都不用
      

  3.   

    int a = 3, b = 1, c = 2;
    int x = a > b ? (a > c ? a : c)  : (b > c ? b : c);
    System.out.println(x);
      

  4.   

    一楼正确,也可以这样:
    max1=a>b?a:b;
    max2=a>c?a:c;
    max=max1>max2?max1:max2;
      

  5.   


    TO F2
    哎,一时大意写错了,挪返个尾彩先
    [/Quote]TO F4
    我加班加到烦死了,早就想换掉这个签名档了,请问怎么换啊~
      

  6.   


    改进一下:
    max=max1>c?max1:c;
      

  7.   

    [Quote= 11  zapdos :]TO F2 
     
     6  zsq007zsq007 :
    [Quote= 3  java2000_net :] 
    1  
     
    [/Quote] TO F4 
    ~
    [/Quote]
      

  8.   

    CSDN真是改得越来越烂了
    找了半天,改了半天
      

  9.   

    int max = c>(a>b?a:b)?c:(a>b?a:b)
      

  10.   

    int max = c>(a>b?a:b)?c:(a>b?a:b)
      

  11.   

    如果是整数 
    (a/b==0?b:a)/c==0?c:(a/b==0?b:a) 
    大于小于号都不用
     ------------------------- 7楼的朋友你不怕除到0吗
      

  12.   

    (a> b)?((a> c)?a:c):((b> c)?b:c);
    1.(a>b)是比较a,b,谁小淘汰谁
    2.如果a大,a>b为真,进入(a> c)?a:c,比较a,c谁大谁就是最后的结果
    3.如果b大,a>b为假,进入(b> c)?b:c,比较b,c谁大谁就是最后的结果
      

  13.   

    (((a>b)?a:b)>c)?((a>b)?a:b):c
      

  14.   

    换个思路int a = 0,b =1 ,c = 2;
    int max = (a > b)&&(a > c)? a : (b > c) ? b : c;