28 lines
965 B
Markdown
28 lines
965 B
Markdown
# 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.
|
|
|
|
```c
|
|
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.
|