Hilfe beim Fehler finden in einem kleinen Programm



  • Ja, aber wieso brauchst du die Leerzeichen?



  • Wenn ich keine Leerzeichen hernehme, kommt ein quadrat raus also

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

    durch die Leerzeichen komme ich auf die dreiecksform, jedoch bleibt es dann auch innen leer.

    im Grunde suche ich nur nach einer Möglichkeit so ein Dreieck auszugeben

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

    zu meinem code:

    zeile== breite -> dadurch wird die oberste line des dreiecks mit * ausgegeben, also die 5*

    zeile==breite-spalte -> dadurch wird die diagonale ausgegeben

    spalte==breite-zeile -> ok das kann man sich sparen, dadurch wird wieder die gleiche diagonale ausgegeben. Hab ich gerade gemerkt.

    spalte==breite -> dadurch werden die 5 Sterne ganz links nach unten hin ausgegeben.



  • vayacontoz schrieb:

    Wenn ich keine Leerzeichen hernehme, kommt ein quadrat raus also

    Das war nicht Sinn der Frage.
    Um diese Form zu zeichnen: Wieso brauchst du da Leerzeichen? Wo sind in diesem Dreieck Leerzeichen? Und wieso in dem unteren und nicht in dem oberen?
    Die Fragen sollen dazu dienen, dass du noch einmal nachdenkst. Das hat jetzt nichts mit deinem Code zu tun.



  • an dem schei** sitz ich jetz schon seit ein paar stunden und ich komm einfach nicht weiter....
    ich hab so ziemlich alle möglichen Formen rausbekommen nur nicht dieses verdammte auf dem Kopf stehende Dreieck



  • Ist n bißchen fies:

    int breite;
    scanf("%d", &breite); 
    int i = 0, j = 0;
    for( i = 0; i < breite; ++i )
    {
    	for( j = 0; j < i; ++j )
    		printf( "%s", "*" ); 
    	printf( "\n" ); 
    }
    for( ; i > 0; --i )
    {
    	for( j = 0; j < i; ++j )
    		printf( "%s", "*" ); 
    	printf( "\n" ); 
    }
    


  • Vielen dank, auf die Lösung wer ich nie und nimmer gekommen....

    eine Frage zu dem Code habe ich. Zeile 10 die for-Schleife. Warum ist da kein Startwert wie es normalerweise der Fall ist also z.b. for(i=0...

    sry. für die Frage, aber ich programmiere erst seit einem knappen Monat(Studienbeginn) und habe keine Vorkenntnisse.

    Danke.



  • vayacontoz schrieb:

    eine Frage zu dem Code habe ich. Zeile 10 die for-Schleife. Warum ist da kein Startwert wie es normalerweise der Fall ist also z.b. for(i=0...

    Nach dem Ende der ersten Schleife hat i den Wert breite, was auch gerade der passende Startwert für die zweite Schleife ist, also kann man die Initialisierung weglassen.



  • vayacontoz schrieb:

    eine Frage zu dem Code habe ich. Zeile 10 die for-Schleife. Warum ist da kein Startwert wie es normalerweise der Fall ist also z.b. for(i=0...

    Ja, das war es was ich mit "n bißchen fies" (für Anfänger) meinte.
    Die Zeile mit der ganzen Länge wird nicht, wie man eigentlich erwarten würde, in Schleife #1 ausgegeben, sondern erst in Schleife #2.

    EDIT:
    Ich hätte in Zeile 10 auch

    for( i = breite; i > 0; --i )
    

    schreiben können, aber es sollte ja auch ein Lerneffekt dabei sein, wenn ich es schon komplett präsentiere.



  • nochmals danke - jetzt kann ich beruhigt ins bett. 👍



  • vayacontoz schrieb:

    nochmals danke - jetzt kann ich beruhigt ins bett. 👍

    Gern geschehen. Wenn jemand richtig verzweifelt ist sollte man auch helfen dürfen.


Anmelden zum Antworten