programmieren-3-c/a3-2/README.md

965 B

A3-2 Ergebnisse

Grundsätzlich gibt es zwei Möglichkeiten, die matrix_elem_sum Funktion zu implementieren:

  1. Rekursiv
  2. Iterativ

Ein rekursiver Ansatz wäre zwar warscheinlich intuitiver, wenn man eine higher-level Programmiersprache gewohnt ist, jedoch ist aufgrund des Aufbaus von Arrays in C ein iterativer Ansatz deutlich sinnvoller.

double matrix_elem_sum(double* matrix, int n, int* lengths) {
    // gesamtlaenge der Matrix ermitteln
    int length = 1;
    for (int i = 0; i < n; i++) {
        length *= lengths[i];
    }
    
    // iterativ alle Elemente der Matrix addieren
    double sum = 0;
    for (int i = 0; i < length; i++) {
        sum += matrix[i];
    }

    return sum;
}

Da auch bei mehrdimensionalen Arrays in C alle Werte sequentiell hintereinander liegen, kann man einfach durch das multiplizieren der Größen der Teil-Matrizen, die Anzahl der gesamtwerte ermitteln, und anschließend Iterativ alle aufsummieren.