Mittelwert aus Array mit beliebiger Größe berechnen...
-
Hi,
ich habe folgendes Problem. Ich möchte eine Funktion implementieren, die verschiedene Statistische Größen eines Arrays von Werten berechnet.
Das Problem sei hier mal anhand der Mittelwertberechnung verdeutlicht, ich denke, die ist für jeden nachvollziehbar. Also mein Problem besteht darin, dass ich das Array mit belibiger Größe übergeben will. Wie schaffe ich es nun das Arrayende zu detektieren. Hier mal mein Coide bisher:
double mean (double array[]) { int size = 0, i = 0; double mean = 0; size = sizeof(array); printf("size %f\n",size); while (array[i]) { mean = array[i] + mean; i++; } if (i>0) { mean = mean / i; } return(mean); }
Mein Problem ist nun, die Abbruchbedingung in der While-Schleife...
Hat einer ne Idee??
Schon mal besten Dank!!
-
Du mußt der Funktion schon selber mitteilen, wo das Array zu Ende ist. Dazu kannst du entweder hinter das letzte gültige Element eine Endemarke setzen (z.B. #inf - in Anlehnung an die Stringverarbeitung von C) oder der Funktion die Anzahl der zu summierenden Werte mitgeben.
-
Okay, ja das war auch mein Ansatz. Meine Frage war halt, ob es auch eine Lösung gibt, die genau diese beiden Vorgehensweisen vermeidet...
Aber trotzdem Danke !
-
In C - nein (auch wenn du Array-Syntax verwendest, ist dein Parameter in Wirklichkeit ein double-Zeiger - und der hat keine Ahnung darüber, wieviel Speicher ab der addressierten Position ihm "gehört").
In C++ - ja (Stichwort: Containerklassen)