2010-10-26 121 views
1

我知道這是一個簡單的數學問題,但由於某種原因我畫了一個空白。尋找是否在編程範圍內的某個範圍

如果我有兩個整數這是一個範圍邊界:

int q = 100; 
int w = 230; 

,然後又在是一個數字,我想看看它的範圍內:

int e = ?; 

如何找到e是否在qw的範圍內?

回答

6

我們在這裏說C嗎?

(e >= q) && (e <= w) 
+1

哈哈,可以工作,我想我正在努力思考。我正在嘗試一些瘋狂的事情...... – 2010-10-26 04:32:03

+0

碰巧發生在我們身上:) – 2010-10-26 04:50:28

+0

看過其他答案之後,你可能應該清楚你對q和w的假設。哪一個更小/更大等 – 2010-10-26 04:52:55

3

首先,你需要找到的qw這是您的下界,並且是你的上限。

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 
} 

這是假設您想要的範圍,包括qw。否則,請將<=替換爲<

0

對於一些困惑:

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

在你開始談論多麼可怕的定義是,這僅僅是一個「簡單」的例子。