Hallo Leute,
habe gerade ein Programm fast ganz fertig bekommen.
Es soll den Mittelwert von x eingegebenen (maximal 20) float Werten ausgeben und die Standardabweichung.
Der Mittelwert wird richtig ausgegeben, aber bei der Abweichung bekomme ich irgendwie -1.#IND00.
Als Testdaten habe ich 4 Werte eingegeben, und zwar 4, 5, 6, 5.
Mittelwert: 5 stimmt
Abweichung müsste 0.707 sein, aber kommt wie gesagt nicht raus.
Die Formel für die Abweichung ist ja wie hier
http://de.wikipedia.org/wiki/Geometrische_Standardabweichung
Das zweite x mit dem Oberstrich steht ja für den Mittelwert.
Was mache ich falsch? Alles scheint zu funktionieren bis auf das mit der Berechnung der Abweichung. Habe ich da einen Fehler?
Hier mal mein Quellcode:
C
#include <stdio.h>
#include <math.h>
float s, m, n;
int i,anzahl;
float messwert[20];
float mittel(int i)
{
for (i=0;i<anzahl;i++)
{
scanf("%f", &messwert[i]);
}
for (i=0;i<anzahl;i++)
{
m=m+messwert[i];
}
m=m/anzahl;
printf("Mittelwert: %f\n", m);
}
int main()
{
s=0;
printf("Anzahl der Messwerte eingeben: ");
scanf("%d", &anzahl);
printf("Geben Sie die %d Messwerte ein: ", anzahl);
m=mittel(anzahl);
[B]
for(i=0;i<anzahl;i++)
{
s=s+((messwert[i]-m)*(messwert[i]-m));
}
s=sqrt((1/anzahl)*s);
printf("abweichung %f",s);
[/B]
}
Alles anzeigen
VIelen Dank fürs Lesen!