Probleme bei zwei verschachtelte while - Schleifen.
-
Schönen guten Tag meine genossen und genossinnen!
Dies ist mein erster Beitrag...und zugleich meine erste Frage zum folgenden Code: Kurze Anmerkung! Bin noch Änfänger und studiere Elektrotechnik[2Sem.]{ int i,x; printf("Geben Sie die Anzahl der Sterne an: "); scanf("%i",&x); for(x;x!=0;x--){ printf("\n"); for(i=1;i<=x;i++) printf("*"); } x--; printf("\n");
Ich versuche nun den oben genannten Code in zweiverschachtelte while - Schleife umzuschreiben!
Mein Versuch:{ int i=1,x; printf("Geben Sie die Anzahl der Sterne an: "); scanf("%i",&x); while(x!=0){ while(i<=x){ printf("*"); i++; } printf("\n"); x--; }
Was mach ich falsch!?
Danke schonmal im v orraus! MfG pcompiler
-
pcompiler schrieb:
Was mach ich falsch!?
- Du musst i jedesmal wieder auf 1 setzen.
- Dein Einrückungsstil
- du schreibst das komische Wort mit v und Leerzeichen falsch. Das kannst du im/beim Duden nachlesen.
-
WoW Danke!
-
pcompiler schrieb:
{ int i,x; printf("Geben Sie die Anzahl der Sterne an: "); scanf("%i",&x); for(x;x!=0;x--){ printf("\n"); for(i=1;i<=x;i++) printf("*"); } x--; printf("\n");
Das x-- am Ende bezieht sich nicht auf das x, das du am Anfang als int deklariert hast. Nach Verlassen des Blocks existiert dieses x nicht mehr. Wenn da kein anderes x im umgebenden Scope existiert, würde es mich doch stark wundern, wenn das irgendein Compiler so angenommen hätte.
-
Horst Hannelore Hansen schrieb:
Das x-- am Ende bezieht sich nicht auf das x, das du am Anfang als int deklariert hast. Nach Verlassen des Blocks existiert dieses x nicht mehr.
Wenn man den Code richtig einrückt,
{ int i,x; printf("Geben Sie die Anzahl der Sterne an: "); scanf("%i",&x); for(x;x!=0;x--) { printf("\n"); for(i=1;i<=x;i++) printf("*"); } x--; printf("\n");
sieht man, das eine } am Ende fehlt, x aber im richtigen Scope ist.