Menu
CoddyTech

Gängige Array-Operationen

Teil des Abschnitts Grundlagen der C++-Journey von Coddy. Lektion 66 von 74.

Hier sind einige gängige 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;
  • Berechne 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;
  • Das Maximum-Element in einem Array finden:
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 double-Werten 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 double-Werten 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 Ergebnisarray 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 behandelt. Hier musst du nur dem gezeigten Muster new double[4] folgen.

Vorgeschlagener Ansatz:
  1. Initialisiere sum = 0, max = arr[0] und min = arr[0].
  2. Durchlaufe das Array von i = 0 bis i < size, addiere die Werte zur Summe 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 (beginne bei 0), max und min (beide beginnen 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, falls größer
    //   - Vergleiche jedes Element mit min und aktualisiere, falls 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