代码之家  ›  专栏  ›  技术社区  ›  Jacob Nelson

以编程方式查找某个内容是否在范围内

  •  1
  • Jacob Nelson  · 技术社区  · 14 年前

    如果我有两个整数作为一个范围的边界:

    int q = 100;
    int w = 230;
    

    另一个是一个数字,我想看看它是否在这个范围内:

    int e = ?;
    

    我怎么能找到 e 在…的范围内 q w ?

    3 回复  |  直到 14 年前
        1
  •  6
  •   D.C.    14 年前

    我们在说C吗?

    (e >= q) && (e <= w)
    
        2
  •  3
  •   aaronasterling    14 年前

    首先你需要找到 q w

    int upper, lower;
    
    if (q <= w) {
        lower = q;
        upper = w;
    } else {
        lower = w; 
        upper = q;
    }
    

    然后你就做一个简单的测试

    if (lower <= e) && (e <= upper) {
         // e is within the range
    } else {
         // e is outside the range
    }
    

    . 否则,更换 <= 具有 <

        3
  •  0
  •   Mateen Ulhaq    14 年前

    对于一些混淆:

    #define IN_RANGE(q,w,e) (((q > w ? q : w) > e) && ((q < w ? q : w) < e)) ? 1 : 0 
    

    在你开始谈论定义有多糟糕之前,这只是一个“简单”的例子。