Die Elemente eines Arrays summieren in C und C++
In dieser Lektion addierst du mit einer Schleife und einer Sammelvariablen alle Werte eines Arrays.
Einführung
Eine Sammelvariable (accumulator) sammelt das Ergebnis über die einzelnen Schleifendurchläufe. Um ein Array zu summieren, beginnt sie bei 0 und bekommt nacheinander jedes Element hinzuaddiert.
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.
So funktioniert es
Klicke auf Schritt, um die Schleife Zug für Zug auszuführen. Beobachte, wie die Bedingung geprüft wird, der Rumpf läuft und die Ablauftabelle Zeile für Zeile wächst.
Codebeispiele in C und C++
#include <stdio.h>
int main(void) {
int values[] = {2, 4, 6, 8, 10}; int total = 0;
// sizeof determines the local array length.
for (size_t i = 0; i < sizeof values / sizeof values[0]; ++i) total += values[i];
printf("sum=%d\n", total);
}
sum=30
#include <iostream>
#include <numeric>
#include <vector>
int main() {
std::vector values{2, 4, 6, 8, 10};
// accumulate folds the range into one total.
std::cout << "sum=" << std::accumulate(values.begin(), values.end(), 0) << '\n';
}
sum=30
C und C++ im Vergleich
Die Variable total wird mit 0 initialisiert, und die Schleife addiert jedes Element genau einmal zu total. Der Ausdruck sizeof values / sizeof values[0] berechnet die Elementanzahl des Arrays, deshalb bleibt die Schleife korrekt, auch wenn du Elemente hinzufügst oder entfernst. Das Ergebnis ist sum=30.
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.
Alle Challenges