Veröffentlicht 23. Oktober 200915 j 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 !!!
23. Oktober 200915 j 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.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.