Anfaengerfrage
-
Hi, die erste (senkrechte) Zeile soll alle Zahlen von 0-8 anzeigen. Das was sie aber anzeigt ist 010305070. Warum werden keine geraden Zahlen angezeigt?
-
Wie oft erhòhst du denn x?
-
Naja 8 mal also von 0-7, willst du darauf hinaus?
-
Wie oft erhöhst du x pro Schleifendurchgang?
-
Also die Schleifen tauschen? X zuerst? Das klappt. Darauf wolltest du auch hinaus?
-
Nein, darauf wollte ich nicht hinaus.
-
kamelkacke schrieb:
realfeld[++x][0].zahl = x;
Da es noch keiner gesagt hat: UB
(undefined behaviour)Innerhalb desselben Ausdrucks, beziehst du dich auf x 2mal, wobei das eine auch ein Schreibzugriff ist. Weder das eine noch das andere muss vor dem jeweils anderen passieren (unsequenced). Das Verhalten davon ist nicht definiert.
Und sonst: Probier es doch mal mit einem Debugger.
-
Worauf Nathan heraus wollte:
Du erhöhst x in der for-Schleife Zeile 11 und in der Anweisung Zeile 12, also 2 Mal. Wenn man jedes Mal um 2 erhöht und bei 0 anfängt kommen halt genau die geraden Zahlen raus.
-
Zudem ist die eine Schleife unnötig, da du y ja nie benutzt.
-
Ok, Problem geloest, vielen Dank.