2009-05-10 10 views

risposta

74

Se stai usando interi, utilizzare il MIN() macro:

MIN(25, 50); //Returns 25 

Se si sta confrontando due NSNumber s, quindi utilizzare il metodo compare::

NSNumber *number, *secondNumber; //Assume 'number'=25, 'secondNumber'=50 
NSComparisonResult result = [number compare:secondNumber]; 

return (result==NSOrderedDescending)?secondNumber:number; //Returns the 'number' NSNumber 
52

La libreria standard C include diverse funzioni min() che, dati due numeri, restituiranno il più basso dei due:

double fmin(double x, double y); 
long double fminl(long double x, long double y); 
float fminf(float x, float y); 

Per utilizzare questi, solo #include <math.h>.

+2

Questi sono per i numeri in virgola mobile. Esistono funzioni stdlib simili per i numeri interi? –

+0

@ZevEisenberg, in C99 la macro ['fmin (x, y)'] (http://en.cppreference.com/w/c/numeric/math/fmin) funziona per 'int'. –

7

Per n. utilizzare

MIN(number1,number2); 

Per il massimo n. utilizzare

MAX(number1,number2); 
+2

Nota questo funziona con ints, no NSNumbers. Per NSNumber usare '@ (MIN (nsNumber1.intValue, nsNumber2.intValue))' – tothemario

Problemi correlati