www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MIN und MAX Werte aus Array ermitteln


Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

gibt es einen einfachen Befehl in C um den minimalen und maximalen Wert 
aus einem Array zu ermitteln?

Gruß,
Sascha

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wozu denn das?
int min = 0xffff, max = 0;
for (int i = 0; i < ARR_LENGTH; i++) {
  if (arr[i] < min) min = arr[i];
  if (arr[i] > max) max = arr[i];
}

Ungetestet.

Autor: Roland Praml (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, da musst das Array schon durchsuchen
int iMin = buf[0];
int iMax = buf[0];
int i;
for (i=0; i < bufLen; i++) {
  if (iMin > buf[i]) iMin = buf[i];
  if (iMax < buf[i]) iMax = buf[i];
}

Gruß
Roland

Autor: Chrisi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder Du hältst Dein Array immer sortiert, womit der erste Eintrag das 
Minimum ist und der letzte das Maximum. Welche Methode eingesetzt wird, 
hängt davon ab, ob häufiger Elemente im Array verändert werden, oder ob 
häufiger gesucht wird.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.