yannic Geschrieben 23. Oktober 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 23. Oktober 2009 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 23. Oktober 2009 Teilen Geschrieben 23. Oktober 2009 Als Ergänzung für den Code Kreiszahl ? Wikipedia Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
yannic Geschrieben 24. Oktober 2009 Autor Teilen Geschrieben 24. Oktober 2009 ok vielen dank jetzt klappts ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.