C :: Aufgabe #308 :: Lösung #1

2 Lösungen Lösungen öffentlich
#308

Zahlenpyramide (Reihenausgabe)

Anfänger - C von JKooP - 23.11.2020 um 16:23 Uhr
Es soll per Funktion/Methode eine Zahlenpyramide (siehe jpg) mit den Ziffern 0-9 und der Höhe 10 erstellt werden.

Dies soll bewerkstelligt werden durch:

Aufgabe 1: (leicht)
mehrerer ineinander verschachtelter Schleifen,

Aufgabe 2: (schwieriger)
nur eine Schleife.

Viel Spaß
#1
vote_ok
von DaXn (180 Punkte) - 16.12.2020 um 17:28 Uhr
Quellcode ausblenden C-Code
/* Es soll per Funktion/Methode eine Zahlenpyramide (siehe jpg) mit den Ziffern 0-9 und der Höhe 10 erstellt werden.
 * Dies soll bewerkstelligt werden durch:
 *
 * Aufgabe 1: (leicht)
 * mehrerer ineinander verschachtelter Schleifen,
 *
 * Aufgabe 2: (schwieriger)
 * nur eine Schleife.
*/

#include <stdio.h>

void NumberPyramid1   (int);
void NumberPyramid2  (int);
void NumberPyramid101 (void);



int main ()
{
    NumberPyramid1 (10);
    printf ("\n");
    NumberPyramid2 (10);
    printf ("\n");
    NumberPyramid101 ();

    return 0;
}


/* verschachtelte Schleifen */
void NumberPyramid1 (int height)
{
    for (int i = 0; i < height; ++i)
    {
        for (int a = height - 1; a > i; --a)
            printf (" ");

        for (int a = i; a; --a)
            printf ("%d", a);
        printf ("0");
        for (int a = 1; a <= i; ++a)
            printf ("%d", a);

        for (int a = height - 1; a > i; --a)
            printf (" ");

        printf ("\n");
    }
}


/* eine Schleife */
void NumberPyramid2b (int height)
{
    static char const * const  lookup [] =
    {
        "         0         \n",
        "        101        \n",
        "       21012       \n",
        "      3210123      \n",
        "     432101234     \n",
        "    54321012345    \n",
        "   6543210123456   \n",
        "  765432101234567  \n",
        " 87654321012345678 \n",
        "9876543210123456789\n"
    };

    for (int i = 0; i < height; ++i)
        printf (lookup [i]);
}


/* keine Schleife */
void NumberPyramid101 (void)
{
    printf ("         0\n        101\n       21012\n      3210123\n     "
            "432101234\n    54321012345\n   6543210123456\n  765432101234567\n"
            " 87654321012345678\n9876543210123456789\n");
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben