• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Sternchenmuster in C

macminiTomy

Kleiner Weinapfel
Registriert
02.10.08
Beiträge
1.132
Guten Morgen!

Ich muss für die Schule ein Programm schreiben, habe aber ein paar Stunden versäumt (Grippe).

Es soll ungefähr so aussehen:

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

Das habe ich gerade geschafft :)

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

int main()
{
   int reihe1, reihe2;

   for(reihe1=0;reihe1<=3;reihe1++)
   {
    for(reihe2=0;reihe2<=reihe1;reihe2++)
    {
    printf("*");
    }
    printf("\n");
   }


   for(reihe1=3;reihe1>=0;reihe1--)
   {
    for(reihe2=0;reihe2<=reihe1;reihe2++)
    {
    printf("*");
    }
    printf("\n");
   }

    return 0;
}

Jetzt musst ich das ganze noch Spiegeln also das es eine Raute ergibt, könnt ihr mir ein paar Tipps geben wie ich das machen könnte? Ist für Erfahrene sich ein Kinderspiel
redface.gif


Vielen Dank! :)
 
Zuletzt bearbeitet:

dumby

Gloster
Registriert
07.12.08
Beiträge
63
Man rückt code eigentlich grundsätzlich nach rechts ein.
Daher ist eine Raute eigentlich auch nicht möglich. Mir entzieht sich jedoch der Sinn der Aufgabe ...

Achso, Rück deinen Code doch auch mal ein wenig ein.
So zum Beispiel:

for(..)
{
<TAB>printf(..);
}

Das macht es ansehnlicher und du siehst auch gleich wo du klammern vergessen hast.
 

macminiTomy

Kleiner Weinapfel
Registriert
02.10.08
Beiträge
1.132
Man rückt code eigentlich grundsätzlich nach rechts ein.
Daher ist eine Raute eigentlich auch nicht möglich. Mir entzieht sich jedoch der Sinn der Aufgabe ...

Achso, Rück deinen Code doch auch mal ein wenig ein.
So zum Beispiel:

for(..)
{
<TAB>printf(..);
}

Das macht es ansehnlicher und du siehst auch gleich wo du klammern vergessen hast.

Das geht im Forum nicht, ist in meinem Programm aber gemacht.
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Das geht im Forum nicht, ist in meinem Programm aber gemacht.
Doch, das geht! →
code.gif

Also beim schreiben eines Beitrages auf dieses Dings klicken und dann werden Tab-Einrueckungen mit uebernommen. (Das Tag nennt sich dann
Code:
)
 

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.038
Wenn du eine Raute bauen möchtest, dann mal' die dir auf ein Blatt Papier und schau' dir an, wie sich die Anzahl der Sterne von Reihe zu Reihe ändert. Das überführst du dann in eine (ziemlich simple ;)) Formel. In der Mitte der Raute musst du die Formel dann ändern, da die Sterne ja dann abnehmen, statt zunehmen.

Das ganze lässt sich mit einer for-Schleife und einem if-Statement, oder mit zwei for-Schleifen realisieren.

Tip: Du machst es dir mit deinem Ansatz IMHO unnötig kompliziert, da du um die vertikale Achse spiegeln möchtest. Eine Raute hat aber zwei Symmetrieebenen... ;) falls du es dennoch so machen möchtest (z.B. um dir das Hantieren mit den Blanks zu sparen), dann denk' mal darüber nach, dass dich niemand daran hindert, das Sternchenmuster vor der Ausgabe auf dem Bildschirm zwischen zu speichern...

Viel Erfolg,
Dirk
 

dumby

Gloster
Registriert
07.12.08
Beiträge
63
Ach lol,

jetzt habe ich verstanden was du machen musst.
Ich habe erst angenommen, du musst deinen Code so aussehen lassen, dass er rautenförmig ist - man bin ich bescheuert. Hätte mir wohl mal deinen Code durchlesen sollen :D

Sorry.