2010-10-26 4 views
1

Je sais que c'est un problème mathématique simple mais pour une raison quelconque, je dessine un blanc.Trouver si quelque chose se trouve dans une plage par programme

Si j'ai deux ints qui sont limites pour une gamme:

int q = 100; 
int w = 230; 

, puis une autre dans c'est un numéro que je veux voir si elle est à l'intérieur de la gamme:

int e = ?; 

Comment puis-je trouver si e est dans les limites de q et w?

Répondre

6

parlons-nous C ici?

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

Haha qui pourrait fonctionner, je pense que je pensais à dur. J'essayais des choses folles ... –

+0

arrive au meilleur d'entre nous :) –

+0

Après avoir regardé les autres réponses, vous devriez probablement clarifier vos hypothèses sur q et w. Lequel est plus petit/plus grand etc. –

3

D'abord, vous devez trouver lequel des q et w est votre limite inférieure et qui est votre limite supérieure.

int upper, lower; 

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

Alors vous venez effectuer un test simple

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

Cela suppose que vous voulez que la plage d'inclure q et w. Sinon, remplacez <= par <.

0

Pour certains faux-fuyants:

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

Avant de commencer à parler de la façon dont sont terribles définit, cela est juste un exemple « simple ».

Questions connexes