美文网首页
算法:不使用条件语句和三目运算符求大小

算法:不使用条件语句和三目运算符求大小

作者: 大牛之路 | 来源:发表于2018-08-16 11:21 被阅读2次

    算法

    给定三个整数,在不使用条件语句,和三木运算符的情况下,算出最大,最小。

    方法 1:
    运用布尔表达式的短路原理,x && y ,如果x为真,才会执行y。比如(a>b)&& (a = b),如果a>b为真,执行a = b,操作。
    

    接下来是代码

    int maximum1(int a,int b,int c)
    {
        int max = a;
        (max<b)&&(max=b);
       (max<c)&&(max=c);
        return max;
    }
    int minmum1(int a, int b, int c){
    
        int min = a;
       (min>b)&&(min = b);
       (min>c)&&(min=c);
       return min;
    }
    
    int main (int argc, const char * argv[]){
        @autoreleasepool {
            NSLog(@"%d--%d",maximum1(6, 3, 9),minmum1(6, 3, 9));
            NSLog(@"%d--%d",maximum2(6, 3, 9),minmum2(6, 3, 9));
        
        }
        return 0;
    }
    

    打印结果:9,3

    传图片传不上,结果是这个
    
    方法 2:运用数组下标
    int maximum2(int a,int b,int c){
        int arr0[] = {a,b};
        int arr1[] = {arr0[a<b],c};
        return arr1[arr1[0]<c];
    }
    int minmum2(int a, int b, int c){
        int arr0[] = {a,b};
        int arr1[] = {arr0[a>b],c};
        return arr1[arr1[0]>c];
    }
    

    这样结果也是一样的。

    相关文章

      网友评论

          本文标题:算法:不使用条件语句和三目运算符求大小

          本文链接:https://www.haomeiwen.com/subject/zrpnbftx.html