yannic Geschrieben 23. Oktober 2009 Geschrieben 23. Oktober 2009 Hallo Bei meinem Script, das Pi ausrechnen soll gibt es einen Fehler bei der Ausgabe. Statt Pi kommt entweder 0.000000000 oder 4.000000000 raus.Der Script ist so gedacht, dass man die Anzahl der x/y Koordinaten eingibt und dann den Nährungswert von Pi erhält.Hier ist der Script : #include <stdlib.h> #include <stdio.h> #include <time.h> int main () { int n; int i; int s = 0; double x; double y; double a; scanf("%d",&n); for(i=n;i>0;i=i-1) { srand(( unsigned )time( NULL )); x = rand() / ((double)RAND_MAX + 1); y = rand() / ((double)RAND_MAX + 1); a = sqrt(x*x+y*y); if (a<=1) s = s+1; } double res = (double)s/(double)n*4; printf("%f",res); system("pause"); return 0; } Vielleicht könnt ihr mir ja weiterhelfen !!! Zitieren
Klotzkopp Geschrieben 23. Oktober 2009 Geschrieben 23. Oktober 2009 Du solltest srand nur einmal aufrufen. So initialisierst du jedesmal den Zufallsgenerator mit der Zeit in Sekunden, erhältst also während dieser Sekunde immer wieder denselben Wert von rand. Zitieren
flashpixx Geschrieben 23. Oktober 2009 Geschrieben 23. Oktober 2009 Als Ergänzung für den Code Kreiszahl ? Wikipedia Zitieren
yannic Geschrieben 24. Oktober 2009 Autor Geschrieben 24. Oktober 2009 ok vielen dank jetzt klappts ! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.