Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Ziegenproblem/3 Türen Problem programmieren

Hallo, ich versuche ein Ziegenproblem
http://de.wikipedia.org/wiki/Ziegenproblem
mit 1000 Durchläufen zu programmieren.

Wenn ich meinen jetzigen Code ausführen will kommt immer "segmentation fault (core dumped)"

Was mach ich falsch und was bedeutet diese Meldung?

Hier mein Code,


Danke im Vorauus


Antworten zu Ziegenproblem/3 Türen Problem programmieren:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hallo,
diese Fehlermeldung (als Speicherschutzverletzung bekannt) erzeugst Du, wenn Dein Programm versucht auf Speicher zuzugreifen, der ihm nicht gehört - mal ganz salopp gesagt.
Zum Beispiel bei Nutzung von uninitialisierten Pointern, die auf keine feste Adresse zeigen oder von Pointern, die auf schon freigegebene Speicherbereiche verweisen.

Einen Hardwaredefekt als Ursache schliessen wir hier mal aus, was aber durchaus auch vorkommen kann.

Deinen Screenshot habe ich mir nicht angesehen, poste Deinen Code bitte wie es üblich ist in Code-Tags, wenn der Hinweis noch nicht reicht.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hier ist 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;
}

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hi,
lies mal hier generell zur Verwendung von rand() und srand() :
http://www2.informatik.uni-halle.de/lehre/c/c_random.html

BTW: Deine funktion rand() zu nennen ist keine gute Idee.


« Batch- suchen und ind den PFAD kopierenWindows 7: C++ Error »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...