Frage von Tobimac, 62

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

Ich habe kommenden Montag einen Informatik Test und der Lehrer hat uns verraten, dass unter anderem eine Aufgabe gestellt wird, wo man einen Pfeil nach oben (wie eine Pyramide ohne Boden) mit der for Schleife Programmieren sollen. Ich suche seit Stunden nach einem Lösungsansatz aber leider Erfolglos. Danke schon mal im Voraus !

Lg Tobimac

Antwort
von ralphdieter, 18

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
von iwolmis, 30

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
von ThomasAral, 38

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.

Kommentar von Willibergi ,

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

LG Willibergi

Kommentar von Roderic ,

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

;-)

Keine passende Antwort gefunden?

Fragen Sie die Community