Menu
Coddy logo textTech

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;
  • Finden Sie 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 maximale 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 minimale 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

Erstellen Sie eine Funktion namens calculateStats, die ein Array von Doubles und die Größe des Arrays als Eingabe entgegennimmt 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 maximale Element im Array.
  4. Findet das minimale 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:
  • Verwenden Sie den Parameter size, um Ihre Schleife zu steuern — verwenden Sie nicht std::size().
  • Um max und min zu initialisieren, setzen Sie diese auf arr[0] — dies funktioniert auch dann korrekt, wenn das Array nur negative Zahlen enthält.
  • Der bereits geschriebene Code in main() alloziert bereits ein dynamisches Array mit new und gibt es mit delete[] wieder frei — Sie müssen lediglich das Ergebnis-Array innerhalb Ihrer Funktion mit new double[4] allozieren und zurückgeben. Hinweis: Pointer und dynamischer Speicher mit new werden in einem späteren Abschnitt ausführlich eingeführt — hier müssen Sie nur dem gezeigten Muster new double[4] folgen.

Vorgeschlagene Vorgehensweise:
  1. Initialisieren Sie sum = 0, max = arr[0] und min = arr[0].
  2. Iterieren Sie von i = 0 bis i < size, summieren Sie die Werte auf und aktualisieren Sie max/min nach Bedarf.
  3. Berechnen Sie den Durchschnitt als sum / size.
  4. Allozieren Sie ein neues Array mit new double[4], speichern Sie die vier Ergebnisse in der richtigen Reihenfolge und geben Sie es zurück.

Probier es selbst

#include <iostream>

double* calculateStats(double arr[], int size) {
    // Sie müssen 4 Werte berechnen, bevor Sie diese in newArr speichern
    // Initialisieren Sie Variablen für Summe (startet bei 0), Max und Min (beide starten bei arr[0])
    // Verwenden Sie eine for-Schleife, um das Array zu durchlaufen
    // Innerhalb der Schleife:
    //   - Addieren Sie jedes Element zur Summe
    //   - Vergleichen Sie jedes Element mit Max und aktualisieren Sie es, falls es größer ist
    //   - Vergleichen Sie jedes Element mit Min und aktualisieren Sie es, falls es kleiner ist
    // Berechnen Sie den Durchschnitt = Summe / Größe (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