Ziegenproblem, 3 Türen Problem
-
Hallo, ich versuche weiterhin das Ziegenproblem
http://de.wikipedia.org/wiki/Ziegenproblem
mit 1000 Durchläufen zu programmieren.Wenn ich meinen jetzigen Code ausführen will kommt immer folgende Meldung: "segmentation fault (core dumped)"
Was mach ich falsch und was bedeutet diese Meldung?
Hier mein Code,
#include<stdio.h> #include<time.h> #include<math.h> int rand() { srand(time(NULL)); rand()%32767; } int bleiben=0; int wechseln=0; void play() { int Tuer=rand(); int Spiel=rand(); int host=rand(); while(host == Tuer || host == Spiel) host=rand(); int bleibe=Spiel; int wechsel=rand(); while(wechsel == bleibe || wechsel == host) wechsel=rand(); if(bleibe == Tuer) ++bleibe; if(wechsel == Tuer) ++wechsel; } int main() { const int AnzahlLaeufe=1000; int i; for(i=0;i<AnzahlLaeufe;i++) play(); printf("Versuche: %i \n",AnzahlLaeufe); printf("Tuer beibehalten: %i \n",bleiben); printf("Tuer gewechselt: %i \n",wechseln); return 0; }
Danke im Voraus
-
int rand() { srand(time(NULL)); rand()%32767; }
Endlosrekursion
Darueber hinaus hast du wahrscheinlich alle Warnungen deines Kompiler ignoriert.
-
Wie kann ich das Problem lösen?
-
Compiler meldete nur:
"segmentation fault (core dumped)"
-
Dann mach mal nur Bulid und nicht Run.
Da steht dann in einem Fenster etwas wie erfolgreich compiliert. Wieviel Warnungen und Fehler du hast.Eine Warnung sollte etwa "srand ohne vorherige Deklaration verwendet" lauten, weil du die stdlib.h nicht einbindest.
Es ist auch extrem blöd, eine eigene Funktion genauso zu nennen wie eine Standardfunktion. In deinem fall
rand()