Halbe Pyramide (Anfänger)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Halbe Pyramide (Anfänger)

    Hallo da draußen,

    da ich vorm Anfang meines Studiums noch Zeit habe, bin ich dabei, mir ein paar Grundkenntnisse beizubringen.
    Dafür versuche ich auch ein paar Aufgaben zu lösen und hab bei der folgenden ein Problem:

    Aufgabe ist, in der unteren rechten Ecke eines Standard-Terminalfensters (80x24) eine Halb-Pyramide aus Sternen darzustellen, beginnend mit 2. Diese soll anhand des User Inputs erstellt werden (=Höhe der Pyramide)
    Z.B. Eingabe 3:

    Quellcode

    1. ..
    2. **
    3. ***
    4. ****



    So ohne Umschweife mal hier mein Code:

    Quellcode

    1. #include <stdio.h>
    2. int
    3. main (int argc, char *argv[])
    4. {
    5. int eingabe;
    6. int row;
    7. int space;
    8. int star;
    9. printf("Bitte geben Sie Höhe der Pyramide ein:\n");
    10. scanf("%d", &eingabe);
    11. for (row = 0; row < eingabe; row++) //for loop für jede reihe, solange bis gewünschte höhe erreicht ist
    12. {
    13. for (space = 1; space = 80-(row+2); space++) // bei Reihe 0 wäre das z.B. 80 - ( 0 +2), also 78 Leerzeilen
    14. printf(" ");
    15. for (star = 1; star = row + 2; star++) //bei Reihe 0 dann dementsprechend 2 Sterne, sodass alle 80 Stellen "ausgefüllt" sind
    16. printf("*");
    17. printf("\n");
    18. }
    19. }
    Alles anzeigen


    So soll dann bei Reihe 1: 77 Leerzeilen und 3 Sterne, Reihe 2: 76 Leerzeilen und 4 Sterne usw.
    (Beachtet habe ich noch nicht, dass Eingabe <24 sein soll)

    Nur wenn ich das Ganze ausführe, springt der blinking prompt nur durch die Gegend (Endlosschleife)

    Ich weiß nicht, ob ich da irgendein Denkfehler drinhabe oder das generell der falsche Ansatz ist.
    Kann mir da jemand helfen?
  • For-Schleifen sind nur ganz spezielle Whileschleifen. Es gibt sie eigentlich nur der Lesbarkeit und weil sie sich schnell schreiben lassen (Deklaration & Initialisierung des Zählers, Inkrementierung sowie Austrittsbedingung in einer Zeile). Ich weiß dass in einigen Sprachen (Delphi), der Compiler tatsächlich den gleichen Assemblercode aus einer for-Schleife wie aus der identischen while-Schleife macht, könnte mir vorstellen, dass es in anderen Sprachen auch so gemacht wird.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]