Gängige Array-Operationen
Teil des Abschnitts Grundlagen der C++-Journey von Coddy. Lektion 66 von 74.
Hier sind einige häufige array-Operationen:
- Finde die Summe aller Elemente in einem Array:
int numbers[] = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
sum += number;
}
std::cout << "Sum: " << sum;- Ermittle den Durchschnitt der Elemente in einem Array:
int numbers[] = {1, 2, 3, 4, 5};
double sum = 0;
for (int number : numbers) {
sum += number;
}
double average = sum / std::size(numbers);
std::cout << "Average: " << average;- Finde das Maximum-Element in einem Array:
int numbers[] = {1, 5, 2, 9, 3};
int max = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
std::cout << "Max: " << max;- Finde das Minimum-Element in einem Array:
int numbers[] = {1, 5, 2, 9, 3};
int min = numbers[0];
for (int i = 1; i < std::size(numbers); i++) {
if (numbers[i] < min) {
min = numbers[i];
}
}
std::cout << "Min: " << min;Aufgabe
EinfachErstelle eine Funktion namens calculateStats, die ein Array von doubles und die Größe des Arrays als Eingabe übernimmt und die folgenden Operationen ausführt:
- Berechnet die Summe aller Elemente im Array.
- Berechnet den Durchschnitt der Elemente im Array.
- Findet das größte Element im Array.
- Findet das kleinste Element im Array.
Die Funktion sollte ein Array von doubles zurückgeben, das die Summe, den Durchschnitt, das Maximum und das Minimum in dieser Reihenfolge enthält.
Wichtige Hinweise:
- Verwende den Parameter
size, um deine Schleife zu steuern: Verwende nichtstd::size(). - Initialisiere
maxundmin, indem du sie aufarr[0]setzt. Das funktioniert auch dann korrekt, wenn das Array nur negative Zahlen enthält. - Der vorgegebene Code in
main()reserviert bereits ein dynamisches Array mitnewund gibt es mitdelete[]frei. Du musst nur das Ergebnis-Array innerhalb deiner Funktion mitnew double[4]reservieren und zurückgeben. Hinweis: Zeiger und dynamischer Speicher mitnewwerden in einem späteren Abschnitt ausführlich eingeführt. Hier musst du lediglich dem gezeigten Musternew double[4]folgen.
Vorgeschlagener Ansatz:
- Initialisiere
sum = 0,max = arr[0]undmin = arr[0]. - Durchlaufe den Bereich von
i = 0bisi < size, addiere die Summe auf und aktualisiere max/min nach Bedarf. - Berechne den Durchschnitt als
sum / size. - Reserviere ein neues Array mit
new double[4], speichere die vier Ergebnisse in der richtigen Reihenfolge und gib es zurück.
Probier es selbst
#include <iostream>
double* calculateStats(double arr[], int size) {
// Du musst 4 Werte berechnen, bevor du sie in newArr speicherst
// Initialisiere Variablen für sum (starte bei 0), max und min (beide starten bei arr[0])
// Verwende eine for-Schleife, um durch das Array zu iterieren
// Innerhalb der Schleife:
// - Addiere jedes Element zu sum
// - Vergleiche jedes Element mit max und aktualisiere, wenn größer
// - Vergleiche jedes Element mit min und aktualisiere, wenn kleiner
// Berechne average = sum / size (nach der Schleife)
double* newArr = new double[4];
newArr[0] = sum;
newArr[1] = average;
newArr[2] = max;
newArr[3] = min;
return newArr;
}
int main() {
int n;
std::cin >> n;
std::cin.ignore();
double arr[n];
for (int i = 0; i < n; i++) {
double val;
std::cin >> val;
arr[i] = val;
}
double* stats = calculateStats(arr, n);
std::cout << "Sum: " << stats[0] << std::endl;
std::cout << "Average: " << stats[1] << std::endl;
std::cout << "Maximum: " << stats[2] << std::endl;
std::cout << "Minimum: " << stats[3] << std::endl;
delete[] stats;
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorInkrement/DekrementPost-Inkrement/DekrementArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Eingabe/Ausgabe Grundlagen
cout-Anweisungcin-AnweisungString-EingabeWiederholung - Bis 120Wiederholung - Wahr oder Falsch3Variablen Teil 2
TypdeklarationNamenskonventionenWiederholung – Variablen initialisierenType Casting Teil 1Type Casting Teil 26Entscheidungsfindung
If-AnweisungIf - ElseSwitch-AnweisungBedingter OperatorWiederholung - If ElseVerschachtelte If - ElseÜbe selbstständig: Online-C++-Compiler