a.b交换与比较

有两个变量a,b,不用if ?: switch或其他判断语句找出两个中比较大的

int max = ((a + b) + abs(a-b)) / 2

给三个整数a,b,c函数实现取三个数的中间数,不可以使用sort,整数操作尽可能少

1 inline int max(int a, int b) ( return a > b ? a : b);
2 inline int min(int a,int b)(return a < b ? a : b);
3 inline int medium(int a, int b,int c)
4 {
5      int t1 = max(a,b);
6      int t2 = max(b,c);
7      int t3 = max(a,c);
8      return min(t1,min(t2, t3));
9 }

 两个数平均值

int average(int x, int y){

    return (x & y) + ( (x ^ y) >> 1);

}

 

posted @ 2015-04-19 16:27  原声  阅读(133)  评论(0)    收藏  举报