Den größten Wert eines Arrays finden in C und C++
In dieser Lektion findest du den größten Wert eines Arrays, indem du die Elemente nacheinander vergleichst.
Einführung
Um den größten Wert zu finden, verwendest du eine Variable mit dem bisher größten Wert und vergleichst sie mit jedem weiteren Element. Immer wenn ein größeres Element auftaucht, wird diese Variable aktualisiert.
Wichtige Punkte
- Schalte die Compiler-Warnungen (compiler warnings) ein und behebe alle.
- Verstehe den Datentyp und die Lebensdauer (lifetime) jedes Werts genau.
- Prüfe immer die Eingabedaten und die Grenzen von Array-Indizes.
Codebeispiele in C und C++
#include <stdio.h>
int main(void) {
int values[] = {-4, 7, 23, 9, 12}; int maximum = values[0];
// Compare every remaining value with the current maximum.
for (size_t i = 1; i < sizeof values / sizeof values[0]; ++i)
if (values[i] > maximum) maximum = values[i];
printf("max=%d\n", maximum);
}
max=23
#include <algorithm>
#include <iostream>
#include <vector>
int main() {
std::vector values{-4, 7, 23, 9, 12};
// max_element returns an iterator to the largest value.
std::cout << "max=" << *std::max_element(values.begin(), values.end()) << '\n';
}
max=23
C und C++ im Vergleich
Die Variable maximum wird mit dem ersten Element initialisiert und nicht mit 0. So bleibt das Programm auch dann korrekt, wenn das Array nur negative Zahlen enthält, denn ein Start bei 0 würde ein falsches Ergebnis liefern. Die Schleife beginnt beim zweiten Element und aktualisiert maximum bei größeren Werten, das Ergebnis ist max=23.
C verwendet kleine prozedurale Funktionen und zeigt offen, wie Daten im Speicher dargestellt werden.
C++ erlaubt weiterhin Arbeit auf niedriger Ebene, ergänzt aber Bibliothekstypen und sicherere Abstraktionen.
Übungen zur Vertiefung
Führe beide Versionen aus und ändere dann den Code, um zu beobachten, welche Sicherheit jede Sprache bietet.
- Teste ungültige Eingaben und Grenzwerte.
- Kompiliere mit den Flags -Wall -Wextra -Wpedantic, um zusätzliche Warnungen einzuschalten.
- Lagere gemeinsame Deklarationen in eine Header-Datei und die Implementierung in eine eigene Datei aus.
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
- Array Maximum Finde den größten Wert in einer Liste. Einfach
- Count Positive Numbers Count the values greater than zero in a list. Einfach