C Rechteck aus Zeichen in der Konsole als Schleife programmieren

Status
Für weitere Antworten geschlossen.

Jinjay95

Cadet 2nd Year
Registriert
Jan. 2015
Beiträge
20
Hallo alle Miteinander.

Ich versuche die ganze zeit schon ein Rechteck in der Konsole zu programmieren.

Und zwar soll der Anwender eine Anzahl der Zeichen eingeben für die Breite und die Höhe.
Jedoch sollte das Rechteck ein Zeichenabstand von 5 Leerzeilen haben, dafür habe ich ein String verwendet.


Bei mir sieht es jedenfalls schon mal ganz gut aus:

Unbenannt.png

Jedoch wie man sehen kann ist mein Rechteck nicht mit restlichen Sternen als Zeichen gefüllt.
Weiß jemand wo mein Fehler liegt?

Code:
#include <stdio.h>
#include <stdlib.h>

main()
{
	int Breite, Hoehe;
	char Abstand[] = "    ";
	
	
	
	
	printf("Dieses Program liest 2 Zahlen ein und gibt sie als Rechteck aus\n");
	printf("Geben Sie nun bitte eine Zahl fuer die Breite ein = ");
	
	scanf("%i", &Breite);
	
	printf("Nun geben Sie bitte eine Zahl fuer die Hoehe ein = ");
	
	scanf("%i", &Hoehe);
	printf("\n\n");
	printf("%s", Abstand);
	
	for(Breite=Breite;Breite!=0; Breite--){
		printf("*", Abstand);
		
	}
	
	for(Hoehe=Hoehe;Hoehe!=0; Hoehe--){
		
		printf("\n%s*", Abstand);
		
		
	}
	
}


Liebe Grüße
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    9,2 KB · Aufrufe: 2.379
Was machen den deine Schleifen? Eine macht eben die eingebene Breite als Sternchen, die nächste dann nur noch Zeilen nach unten ;) Wenn die Zusammen arbeiten sollen musst du sie verschachteln.

Wie ich gerade sehe hast du gestern die Frage schonmal aufgemacht, und sie wurde als Hausaufgabe dicht gemacht. Find ich schon frech das du es einfach nochmal aufmachst ;)
 
Zuletzt bearbeitet:
Musst du bei der Höhe nicht noch die Breite mit einbeziehen?
Also dass er bei der "Höhe", auch die entsprechenden Zeichen in der Breite anzeigt?
Bin nicht viel unterwegs in [C]..

Gruß

Telmur
 
Meiner Meinung nach fehlt bei der höhe die rechte Seite:
Code:
for(i=Hoehe;i!=0; i--){
        printf("\n%s*", Abstand);

        for(j=4;j!=0; j--){
            printf(" ");    
        }

        printf("*");
    }

und natürlich die untere Seite welche du mit einer 3. Schleife unschön so bekommen könntest:

Code:
printf("\n%s", Abstand);

    for(i=Breite;i!=0; i--){
        printf("*", Abstand);
    }
 
Zuletzt bearbeitet:
Wie ich gerade sehe hast du gestern die Frage schonmal aufgemacht, und sie wurde als Hausaufgabe dicht gemacht. Find ich schon frech das du es einfach nochmal aufmachst

Ich finde es "frech" mein letzten Beitrag einfach zu schließen obwohl ich nicht einmal angegeben habe dass es eine Hausaufgabe war..!
 
Code:
for(Breite=Breite;Breite!=0; Breite--)

Überleg mal was du machst. Und dann überleg mal was folgendes machen würde und wo der Unterschied liegt:


Code:
for(int B=Breite;B!=0; B--)

Nebenbei mußt du auch die 2 Schleifen verschachteln

Die Äußere Schleife zählt deine Höhe runter, die Innere sollte die * zeichnen.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben