Hallo,
int werte[254];
Hat 254 Plätze, es sollten aber 255 sein!
In werte[255] steht ein Zufallswert.
Also
int werte[255];
Angesprochen wird das Array dann mit werte[0] bis werte[254]
Beim ersten Aufruf von durchschnitt() steht in summe auch ein Zufallswert.
Tipp:
Code:
#define BUFFER_SIZE 255
int werte[BUFFER_SIZE];
for (j=0; j < BUFFER_SIZE; j++)
{
// mach was
}
Variante:
Code:
int werte[255];
#define BUFFER_SIZE (sizeof(werte) / sizeof(werte[0]) )
// sizeof(werte) liefert den Speicherplatz für das ganze Array in Bytes
// sizeof(werte[0]) liefert den Speicherplatz für ein einzelnes Array-Element in Bytes
// Die Klammer um den ganzen Ausdruck ist prinzipiell nicht nötig, kann aber schwer zu findende Bugs verhindern.
// z.B.
// #define BUFFER_SIZE sizeof(werte) / sizeof(werte[0])
// ++BUFFER_SIZE
// würde der Compiler nach
// (sizeof(werte)+1) / sizeof(werte[0])
// auflösen und eben nicht nach
// (sizeof(werte) / sizeof(werte[0]))+1
Das passt dann immer, auch wenn du die Array-Grösse mal ändern willst 
MfG Peter(TOO)
Lesezeichen