C++ falsche ausgabe, karten
-
static const char* face[13] = { "", "Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };
Ein Dummywert für Position 0 wäre ein schneller Fix.
-
Ethon schrieb:
static const char* face[13] = { "", "Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" };
Ein Dummywert für Position 0 wäre ein schneller Fix.
Dann ist die 13 aber falsch.
Sowohl bei der Definition von dem Array, als auch bei der Berechnung.
-
Stimmt, nicht nachgedacht.
Am Besten intern statt 1-13 mit 0-12 arbeiten.
-
Ethon schrieb:
Stimmt, nicht nachgedacht.
Am Besten intern statt 1-13 mit 0-12 arbeiten.
Sag ich doch. deck ist falsch gefüllt
-
~~Btw: deine for Schleifen zählen pre-increment hoch!
D.h. ++i ist beim 1. Durchgang nicht 0, sondern schon 1, da erst hochgezählt und dann ausgewertet wird.
i++ würde erst i auswerten und dann hochzählen.Wenn man das berücksichtigt erklärt sich der Offset ;)~~
-.-' Hirnfurz
-
...
-
Boolshit schrieb:
Btw: deine for Schleifen zählen pre-increment hoch!
D.h. ++i ist beim 1. Durchgang nicht 0, sondern schon 1, da erst hochgezählt und dann ausgewertet wird.
i++ würde erst i auswerten und dann hochzählen.Wenn man das berücksichtigt erklärt sich der Offset
Quatsch.
for(A; B; C) D;
ist nichts anderes als{ A; while(B) { D; C; } }
-
Japp, sorry. Da hat sich was im Hirn verklemmt...
-
SeppJ schrieb:
for(A; B; C) D;
ist nichts anderes als{ A; while(B) { D; C; } }
Gegenbeispiele:
- A="int i=0;", B="int i=0;" => geht mit while aber nicht mit for
- D="continue;" => C wird nicht ausgeführt
- C="int i=0;" => geht nicht in for
-
paragraphenscheisser schrieb:
SeppJ schrieb:
for(A; B; C) D;
ist nichts anderes als{ A; while(B) { D; C; } }
Gegenbeispiele:
- A="int i=0;", B="int i=0;" => geht mit while aber nicht mit for
- D="continue;" => C wird nicht ausgeführt
- C="int i=0;" => geht nicht in forDer mit continue ist gut, aber die anderen: Logikfehler deinerseits. Dackel und Hunde sollte man schon unterschieden können, wenn man Klugscheißen möchte. Da steht nicht "while... ist das gleiche wie for...", da steht "for... ist das gleiche wie while...".
-
...
-
SeppJ schrieb:
Da steht nicht "while... ist das gleiche wie for...", da steht "for... ist das gleiche wie while...".
"ist das gleiche wie" ist das gleiche wie "ist äquivalent zu" und das schliesst die Rückführung mit ein.
-
- A="int i=0;", B="int i=0;" => geht mit while aber nicht mit for
Natürlich geht das mit
for
. Warum denn auch nichtIch frage mich auch, wieso SeppJ das nicht gesagt hat.
paragraphenscheisser schrieb:
SeppJ schrieb:
Da steht nicht "while... ist das gleiche wie for...", da steht "for... ist das gleiche wie while...".
"ist das gleiche wie" ist das gleiche wie "ist äquivalent zu" und das schliesst die Rückführung mit ein.
Nope
-
Arcoth schrieb:
- A="int i=0;", B="int i=0;" => geht mit while aber nicht mit for
Natürlich geht das mit
for
. Warum denn auch nichtWeil dann beide in der
gleichenidentischen declarative-region sind?
-
Arcoth schrieb:
Ich frage mich auch, wieso SeppJ das nicht gesagt hat.
So genau hatte ich mir die Rückführungsfalle gar nicht angesehen, da irrelevante Trollerei. Der interessante Fall ist das continue. Das Ergebnis ist nicht mehr schön, wenn man das noch beachtet. Verschachtelte Schleifen oder if-do-while mit Kommaoperator fielen mir da ein.
-
paragraphenscheisser schrieb:
Arcoth schrieb:
- A="int i=0;", B="int i=0;" => geht mit while aber nicht mit for
Natürlich geht das mit
for
. Warum denn auch nichtWeil dann beide in der
gleichenidentischen declarative-region sind?Achso. Gleicher Name. <°)))o>< )
-
warum kein
enum [class] Cards {...};
?