C-Programm: Buchstaben aus mehreren einzelnen Buchstaben bilden?

... komplette Frage anzeigen

3 Antworten

Ermittle im Voraus die Hälfte der Höhe (m). Vielleicht subtrahierst du davon dann noch 1, wenn die Zahl gerade ist (h % 2 == 0). Bei einer gerade Höhe würde es meines Erachtens nämlich nicht so schön aussehen, wenn der Querbalken unter der Hälfte steht (Bsp.: h = 4, m = 2).

Außerdem solltest du darauf achten, dass eine Mindesthöhe und -breite eingehalten wird. Ein H in 2 x 2-Format ergäbe bspw. keinen Sinn.

Lass das H dann durch 2 ineinander verschachtelte Schleifen zeichnen. Die äußere Schleife übernimmt die y-Achse, die innere die x-Achse. Wenn y die Höhe von m erreicht, muss die innere Schleife durchweg das H ausgeben.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Awero
17.06.2017, 16:34

Welche schleife brauche ich für die verschachtelten?

0
Kommentar von Awero
17.06.2017, 16:45

oke,danke :)

0

Gib einfach eine ZxS-Matrix aus: Ein 'H' kommt in der ersten Spalte (s==1), letzten Spalte (s==S) und in der mittleren Zeile (z==Z/2):

#include <stdio.h>  // printf()
#include <stdlib.h> // atoi()

int main ( int argc, char **argv )
{
if ( argc != 3 )
{
printf( "Aufruf: %s <Zeilen> <Spalten>\\n", argv[0] );
return 1;
}
int Z = atoi( argv[1] );
int S = atoi( argv[2] );

for ( int z=0; z<Z; ++z )
{
for ( int s=1; s<=S; ++s )
{
if ( s==1 || s==S || z==Z/2 )
putchar( 'H' );
else
putchar( ' ' );
}
putchar( '\\n' );
}
return 0;
}

> gcc -O2 -Wall -o H H.c && ./H 5 7

H     H
H H
HHHHHHH
H H
H H
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ralphdieter
17.06.2017, 16:30

Bei gerader Zeilenzahl liegt der Querbalken tiefer:

> gcc -O2 -Wall -o H H.c && ./H 6 7

H     H
H H
H H
HHHHHHH
H H
H H

Das liegt daran, dass die Zeilenschleife von 0 bis 5 geht, und der Balken in Zeile 3 steht.

Wenn Du die Zeilenschleife in (z=1; z<=Z; ++z) änderst, laufen die Zeilennummern von 1 bis 6. Zeile 3 steht dann über der Mitte:

H     H
H H
HHHHHHH
H H
H H
H H

Such Dir aus, was Dir besser gefällt :-)

0

ist das dann so gemeint bei 3 und 3?

H H
H H H
H H

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von r0a9p0h1i
17.06.2017, 15:23

gutefrage.net formatiert das anders als ich es geschrieben habe. Also dass die Buchstaben, den Buchstaben H ergeben sollen?

0
Kommentar von Awero
17.06.2017, 15:34

ja genau nur sollte das so ausschauen: H H HHH H H

0
Kommentar von Awero
17.06.2017, 15:35

oh oke bei mir wird das auch so komisch formatiert :)

0
Kommentar von r0a9p0h1i
17.06.2017, 15:45

also wir machen bei uns in der Schule C#. Dürfte nicht so anders sein als C. Ich würde das Beispiel mit einer verschachtelten Schleife lösen.

0

Was möchtest Du wissen?