Schleifenbedingung soll n mal erfüllt werden



  • Hi,

    sorry, schonmal vorneweg, sollte es für mein Problem schon eine Lösung geben, aber ich konnte leider nichts finden.

    Ich habe eine Würfel programmiert, welche so eingestellt ist, dass er genausolange würfeln soll, bis eine 6 gewürfelt wurde:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main(void) {
    	setbuf(stdout, NULL);
    
    	srand(time(NULL));
    	int zahl=0;
    	int i=0;
    	int anzahl_sechser=0;
    
    	printf("Wie oft soll eine 6 gewürfelt erden? ");
    	scanf("%d", &anzahl_sechser);
    
    	do{
    		zahl = rand()%6+1;
    		i = i + 1;
    	}while(zahl != 6);
    	printf("%d", i);
    	return 0;
    }
    

    Nun möchte ich aber gerne, dass der Nutzer gefragt wird, wie oft eine 6 gewürfelt werden soll, bevor das Programm beendet wird. Ich denke sicher, dass in die Abbruchbedinung noch etwas mit && rein muss, aber ich kommen beim besten willen nicht drauf.

    Habt Ihr einen Hinweis für mich?

    Danke

    Lakul



  • ...
    printf("Wie oft soll eine 6 gewürfelt erden? ");
    scanf("%d", &anzahl_sechser);
    while (i != anzahl_sechser) {
        do {
            zahl = rand () % 6 + 1;
        } while(zahl != 6);
        i = i + 1; // wird nur inkrementiert, wenn auch tatsächlich eine 6 gewürfelt wurde
    }
    ...
    


  • ach man, so einfach, da hätte ich drauf kommen können, danke!!!



  • monstermunchkin schrieb:

    ...
    
            zahl = rand () % 6 + 1;
    
    ...
    

    Mensch, monstermunchkin, ausgerechnet von Dir diesen Modulo- Mist lesen zu müssen, betrübt mich. Aber irgendwie kriegt man das aus den Köpfen nicht raus ...



  • pointercrash() schrieb:

    monstermunchkin schrieb:

    ...
    
            zahl = rand () % 6 + 1;
    
    ...
    

    Mensch, monstermunchkin, ausgerechnet von Dir diesen Modulo- Mist lesen zu müssen, betrübt mich. Aber irgendwie kriegt man das aus den Köpfen nicht raus ...

    Entschuldige vielmals, musste wohl in Trance gewesen sein 😮 Hier das Ganze nochmal verkürzt auf Deutsch.



  • Und nochmal ausgeschmückt auf Deutsch:
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-172876.html

    Da steht dann auch der Klassiker:

    Ein erkanntes Problem ist schon fast ein gelöstes Problem. Es gibt drei grundsätzliche Möglichkeiten, mit dieser Ungleichverteilung umzugehen:

    * Sie ignorieren es, weil es in Ihrer Anwendung vernachlässigbar ist und keine Auswirkung hat
    [...]


Anmelden zum Antworten