Menu
Coddy logo textTech

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;
challenge icon

Aufgabe

Einfach

Erstelle eine Funktion namens calculateStats, die ein Array von doubles und die Größe des Arrays als Eingabe übernimmt und die folgenden Operationen ausführt:

  1. Berechnet die Summe aller Elemente im Array.
  2. Berechnet den Durchschnitt der Elemente im Array.
  3. Findet das größte Element im Array.
  4. 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 nicht std::size().
  • Initialisiere max und min, indem du sie auf arr[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 mit new und gibt es mit delete[] frei. Du musst nur das Ergebnis-Array innerhalb deiner Funktion mit new double[4] reservieren und zurückgeben. Hinweis: Zeiger und dynamischer Speicher mit new werden in einem späteren Abschnitt ausführlich eingeführt. Hier musst du lediglich dem gezeigten Muster new double[4] folgen.

Vorgeschlagener Ansatz:
  1. Initialisiere sum = 0, max = arr[0] und min = arr[0].
  2. Durchlaufe den Bereich von i = 0 bis i < size, addiere die Summe auf und aktualisiere max/min nach Bedarf.
  3. Berechne den Durchschnitt als sum / size.
  4. 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;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-C++-Compiler