Hilfe
-
Hallo,
ich habe eine kleine Aufgabe bekommen und komme nicht weiter.
Die Aufgabe:
Lass 100x eine Münze werfen und gib die Ergebnisse folgendermaßen aus (Zeilenwechsel nach 10 Würfen)!
Bsp:
Kopf Kopf Zahl Kopf Zahl Zahl Zahl Zahl Kopf Zahl
Kopf Zahl Zahl Zahl Zahl Kopf Zahl Zahl Zahl Zahl
Kopf Zahl Zahl Zahl Zahl Kopf Zahl Zahl Zahl Zahl
Zahl Zahl Zahl Zahl Zahl Kopf Zahl Zahl Zahl Zahl
usw.ich bin so weit gekommen, jetzt weiß ich nicht, wie ich das 100 mal wiederhole. Danke im vorhinein!
int main() { int zufall, wert; srand(time(NULL)); zufall = rand(), wert = zufall % 2; { if (wert==0 ) { printf("Kopf\n"); } else { printf("Zahl\n"); } } }
-
Kennst du Schleifen?
-
ja kenn ich, aber ich eiß nicht wie ich die schleife definieren soll
-
Weißt du, wie man eine Schleife macht, die 100 mal durchlaufen wird? (Zählschleife)
-
ich weiß nicht wie ich die while-schleife definieren soll
-
Mach es mit einer for-Schleife.
-
Niko.S schrieb:
ich weiß nicht wie ich die while-schleife definieren soll
Hattet ihr schon for-Schleifen? Ich wuerds mal damit versuchen.
-
ok, aber was schreibe ich zwischen den klammern bei for?
-
-
Ich machs mal in Pseudocode:
for(...) { Neue Zufallszahl erzeugen; if Zufallszahl gerade Kopf ausgeben; else Zahl ausgeben; }
-
icarus2 schrieb:
for(...) { Neue Zufallszahl erzeugen; if Zufallszahl gerade Kopf ausgeben; else Zahl ausgeben; if(zaehlvaribale % 10 == 9) // zaehlvaribale im Bereich [0,100[ Zeilenumbruch ausgeben }
-
ok, danke für die hilfe, aber wie mache ich den zeilenumbruch nach 10 würfen?
-
Niko.S schrieb:
ok, danke für die hilfe, aber wie mache ich den zeilenumbruch nach 10 würfen?
Du kannst mit
printf("\n");einen Zeilenumbruch machen.
-
icarus meinte wohl
std::cout << '\n';
-
ja,das versteh ich, aber nach 10 würfen?
-
Ich glaube er meint sowas.
for(laufvariable;...;...) { if(laufvariable%10 == 0) cout << '\n'; }
-
Gugelmoser schrieb:
Ich glaube er meint sowas.
for(laufvariable;...;...) { if(laufvariable%10 == 0) cout << '\n'; }genau das, danke für die hilfe!
-
314159265358979 schrieb:
icarus meinte wohl
std::cout << '\n';Im Prinzip schon.
Ich habe allerdings gesehen, dass er selber printf verwendet. Und da ich nicht weiss, ob er std::cout kennt wollte ich ihn nicht unnoetig verwirren.
-
Lieber Niko,
for(int a=0 /*oder a(0)*/ ; a != /*z.B.*/ 100 ; ++a) std::cout << ((rand() % 2) ? "Zahl" : "Kopf") << '\n';So würde ich es lösen...
Die for-Schleife:
for( Startanweisung, z.B. Deklaration (und Definition) einer Variablen (int a = 0); Bedingung (auch vor dem Anfang geprüft), z.B. a < 5; Anweisung für nach einem Durchlauf(nachdem die Bedingung überprüft wurde), z.B. ++a) //....Vergleichbar mit:
{ Startanweisung while(Bedingung) { //Mach das und dies Anweisung für nach einem Durchlauf } }
-
danke für die hilfe, hat mir sehr geholfen!