Menu
CoddyTech

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;
  • Finde 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 aus 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 größte Element im Array.
  4. Findet das kleinste Element im Array.

Die Funktion soll ein Array aus 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().
  • Um max und min zu initialisieren, setze sie auf arr[0]. Das funktioniert auch dann korrekt, wenn das Array nur negative Zahlen enthält.
  • Der vorbereitete Code in main() reserviert bereits ein dynamisches Array mit new und gibt es mit delete[] frei. Du musst nur das Ergebnisarray in deiner Funktion mit new double[4] reservieren und es zurückgeben. Hinweis: Zeiger und dynamischer Speicher mit new werden in einem späteren Abschnitt ausführlich behandelt. Hier musst du lediglich dem gezeigten Muster new double[4] folgen.

Vorgeschlagene Vorgehensweise:
  1. Initialisiere sum = 0, max = arr[0] und min = arr[0].
  2. Durchlaufe die Werte von i = 0 bis i < size, addiere dabei 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 der Reihe nach darin 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 die Variablen für sum (beginnt bei 0), max und min (beide beginnen bei arr[0])
    // Verwende eine for-Schleife, um das Array zu durchlaufen
    // Innerhalb der Schleife:
    //   - Addiere jedes Element zu sum
    //   - Vergleiche jedes Element mit max und aktualisiere max, wenn das Element größer ist
    //   - Vergleiche jedes Element mit min und aktualisiere min, wenn das Element kleiner ist
    // 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