Ausgabeerweiterung



  • Hallo liebe Community,

    ich möchte gerne mit C ein kleine Programm schreiben, das etwa folgende Ausgabe hat:

    *
    **
    ***
    ****
    *****
    

    Ich möchte also einfach über eine Variable die Anzahl der Zeilen bestimmen und mit zunehmender Zeile ein [*] hinten dran hängen.

    Wenn es möglich ist bitte mit for oder while.
    Ich hab mich zwar schon oft daran versucht, doch bin ich jedes Mal kolossal gescheitert, da ich anscheinend die Logikabfolge mit den Befehlen nicht umsetzen kann.

    Wenn mir jemand dabei helfen könnte, wäre das furchtbar nett von euch, da ich die Logik dahinter verstehen will um es bei anderen Bereichen anzuwenden.

    Schon einmal vielen Dank im voraus.

    PS: Für ein Beispiel einer Pyramide wäre ich euch auch sehr dankbar 😃
    Also sowas hier:

    *
      ***
     *****
    




  • Hallo Karsen, 🙂

    es wäre sehr gut wenn du uns einen konkreten Versuch von dir zeigen könntest, sodass wir dir sagen können wo du deinen (Logik)-Fehler hast. Grundsätzlich ist es nicht schwer, und du findest dazu haufenweise im Internet.

    Tipp: Schau dir mal verschachtelte For-Schleifen an.
    Dabei gibt die erste schleife die Anzahl der Zeilen an und printet einen Zeilenumbruch, und die zweite läuft einfach solange durch, bis sie den wert der ersten hochgezaehlten Variable erreicht, und printet einen "*".

    also:
    Schleife 1: wert 1
    Schleife 2: wert 1

    Zeile 1: Nummer 1: *

    Schleife 1: wert 2
    Schleife 2: Wert 1
    Zeile: 2 Nummer 1: * (Ist keine Ausgabe, nur ein Zwischenschritt zum Verständnis, die Ausgabe erfolgt hiernach nach Zeile 2, Nummer 2.
    ➡
    Schleife 2: wert 2
    Zeile: 2 Nummer 2: **

    =

    **

    usw. Beim nächsten durchlauf ist Schleife 1: Zeile 3 und Schleife 2 läuft von 1-3 und printet *** unter die **.

    Edit: ich seh gerade, Wutz hat dem Herren das Nachdenken schon abgenommen.



  • Oh, da hätte ich ja noch lange ausprobieren können.
    Ehrlich gesagt wäre ich nicht so ohne weiteres darauf gekommen.

    Ich hatte bislang 2 for-Schleifen in einander verschachtelt, die jedoch beide auf den Bezug "(i=; i<anzahlderzeilen; i++)" hinwiesen. So dass ich immer 3 Zeilen mit jeweils 3 Zeichen hatte etc. Und als ich andere Sachen ausprobierte habe, änderte ich diesen Bezug nie wirklich, sondern versuchte da irgendwas mit einem Zeilenumbruch anzufangen.

    Bin nie darauf gekommen die eine Zählreihe gegen die andere laufen zu lassen^^

    Mein Programm sind jetzt so aus und funktioniert:

    #include<stdio.h>
    #include<stdlib.h>
    
    int main()
    {
    
        int zeilen;
        int i, j;
        printf("Wie viele Zeilen?\n");
        scanf("%d", &zeilen);
    
       for(i=zeilen; i>=0; i--){      //Jede Zeile
                for(j=0; j<zeilen-i; j++){
                printf("*");  }  
       printf("\n");
       }   
         system("pause");
         return 0;
    }
    

    Danke für eure Hilfe!


Anmelden zum Antworten