Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

n-dimensionale Matrix und Werte aufsummieren

Schönen guten Tag,

ich soll eine Funktion schreiben, die die Summe aller Elemente einer n-
dimensionalen Matrix aus double-Zahlen zurückgibt. Dabei sollen neben der Matrix auch n
(also die Anzahl der Dimensionen) und auch die n Größen der einzelnen Dimensionen als
Parameter übergeben werden (letztere in Form eines int-Arrays der Länge n).

gegeben ist:

double matrix_elem_sum(double matr[], int n, int lengths[]) {
/* Die Aufgabe*/
}


und in der main soll das dann so aussehen Bspweise:

int main(void) {
double matrix2d[3][2] =
{ {111, 112}, {121, 122}, {131, 132} };

int lengths2d[2] = {3, 2};

printf("Sum of matrix2d = %f\n",
matrix_elem_sum((double*)matrix2d, 2, lengths2d)); // gibt 729 aus

return 0;

}

Das soll wie gesagt nicht nur für 2-dim. Arrays funktionieren.

vielen Dank für die Hilfe schon mal im Voraus :)


Antworten zu n-dimensionale Matrix und Werte aufsummieren:

Habe es selber herrausgefunden :)

Man muss einfach alle Elemente von 0 bis die länge aufsummieren.
Sind ja trotzdem alle im Speicher hintereinander, deswegen geht das.

   double sum=0;
   int i,k;
   int big=1;     
   for (i=0;i<n;i++){
   big*=lengths;
   }
   for (k=0;k<big ;k++){
   sum+=matrix[k];   
   }

   return sum;


« App Programmieren Android sdk neue Seite C - In alle Ordner eines Verzeichnis wechseln und Dateien umbennen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Tag
Ein Tag ist ein englischer Begriff und bedeutet so viel wie Etikett, Mal, Marke, Auszeichner und Anhänger. Generell ist Tag eine Auszeichnung eines Datenbetandes mit...

Formatieren
  Das Formatieren einer Festplatte, HDD oder SSD bereitet das Laufwerk auf neue Daten vor. Dazu werden sämtliche alten Daten gelöscht, damit die...

Unterlänge
In der Typographie lassen sich die einzelnen Buchstaben des Alphabets in ein sogenanntes Linienraster oder Liniensystem vertikal einfügen. Nun lassen sich drei versc...