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.


Anmelden zum Antworten