Поиск, если что-то находится в пределах диапазона программно - PullRequest
1 голос
/ 26 октября 2010

Я знаю, что это простая математическая задача, но по какой-то причине я рисую пробел.

Если у меня есть два целых числа, которые являются границами для диапазона:

int q = 100;
int w = 230;

, а затем еще одинэто число, которое я хочу увидеть, находится ли оно внутри диапазона:

int e = ?;

Как я могу найти, если e находится в пределах q и w?

Ответы [ 3 ]

6 голосов
/ 26 октября 2010

мы говорим здесь С?

(e >= q) && (e <= w)
3 голосов
/ 26 октября 2010

Сначала вам нужно выяснить, какие из 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
}

Предполагается, что вы хотите, чтобы диапазон включал q и w. В противном случае замените <= на <.

0 голосов
/ 26 октября 2010

Для некоторого запутывания:

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

Прежде чем вы начнете говорить о том, как ужасны определения, это просто "простой" пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...