Wie kann ich mit C einen Pfeil mit dem for loop programieren?

...komplette Frage anzeigen

3 Antworten

Mit der coolen printf-Formatierung geht das ganz leicht:

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

void main ( int argc, char *argv[] )
{
int const w = argc>1 ? atoi(argv[1])/2 : 40;

for ( int i=0; i<w; ++i )
printf( "%*c%*c\\\\n", w-i, '/', 2*i+1, '\\\\\\\\');
}

Kompilieren: gcc -std=c99 -o pfeil pfeil.c
Starten: pfeil 78

Antwort bewerten Vielen Dank für Deine Bewertung

Hi, Du kannst eine Pyramide ausdrucken mit drei oder zwei Schleifen. Doch "ohne Boden" verstehe ich nicht. Man brauch zwei Werte: h = die Höhe b = die Breite am eben Boden Die erste Schleife geht von 0 bis h und am ende diese Schleife printest Du NewLine. Innerhalb von diese Schleife printest mit zweite Schleife Blanks 0 bis Breite/2 dan neue Schleife von 0 zuerst bis 0 und einen Zeichen. Bei jeden Wechsel von der erste Schleife, minimieren die zweite um 1 und die dritte erhöhen um 1. Mit nur zwei Schleifen, muss in der zweite eine "if" kommen und dan endweder Blanks uder Zeichen drucken. Ich bun nicht sicher, ob es hilft, da ich nicht verstanden habe was soll mit "ohne Boden" sein. Ciau Das ist nur meine Idee, aber programmieren musst Du es selbst :-) Mit 3 Schleifen ist das Programm schnelle; mit 2 Schleifen ist noch die "if" Abfrage - also langsamer.

Antwort bewerten Vielen Dank für Deine Bewertung

na etwa so:

for( i:=1; i < 30; i += 2 ) { if( i < 10 ) { MittigZeichen( i ); } else { MittigZeichen( 5 ); } }

wobei MittigZeichen dann eine Funktion ist die im einfachsten Fall das Argument an Anzahl von Sternen in der Mitte der aktuellen Zeile am Bildschirm ausgibt und in die nächste Zeile springt.

Antwort bewerten Vielen Dank für Deine Bewertung
Willibergi 14.04.2016, 13:37

In C werden Variablen mit "=", nicht mit ":=" deklariert.

LG Willibergi

2
Roderic 14.04.2016, 14:43
@Willibergi

Sei nachsichtig. Dieser Fehler passiert jedem immer wieder mal, der über Pascal/Delphi in die Programmierung eingestiegen ist.

;-)

0

Was möchtest Du wissen?