min und max in C
-
hallo,
gibt es in C eine Funktion, die min- und maxwerte berechnet???
-
Wovon soll sie den minimale und maximal Werte berechnen?
-
ich taste ein anloges Signal ab und muss min und max dieser Wete bestimmen
-
So war das jetzt nicht gemeint. Ich frag mal anders.
Wie liegen die Werte programmtechnisch gesehen vor?
(z.B.: Integer-Array)Gruß
Don06
-
// irgendwo oben int min = INT_MAX; int max = INT_MIN; ... // irgendwo im code if (x < min) min = x; if (x > max) max = x; ... // wenn fertig printf ("max %d, min %d\n", max, min);
-
hi danke für die Antworten,
die Wete sind 16-bit breite (short). ich lese immer 1024 Wete vom ADU und lege sie in einen Puffer (SDRAM) ab.
-
Das bleichgesicht hats dir doch schon verraten...
int minmax( short* data, size_t length, short *min, short* max ) { *min = *max = *data; for( size_t i = 0; i < length; ++i ) { if( *( data + i ) < *min ) { *min = *( data + i ); } if( *( data + i ) > *max ) { *max = *( data + i ); } } }
@pale: wofür das INT_MIN / INT_MAX zeug!?
-
@pale: wofür das INT_MIN / INT_MAX zeug!?
Makros für darstellbare Minima/Maxima eines int. Zu finden limits.h
-
Jaja, schon klar...
aber wofür zum teufel?
-
kenner der dummköpfe schrieb:
@pale: wofür das INT_MIN / INT_MAX zeug!?
damit man nicht zwischen erstem wert und folgewerten unterscheiden braucht.
btw: ich würde nicht nachträglich mit einer schleife über alle werte rasseln, sondern gleich nach dem einlesen eines wertes min/max berechnen. ausnahme: wenn die werte so rasend schnell ankommen, dass keine zeit für die paar operationen bleibt.