C :: Aufgabe #308

2 Lösungen Lösungen öffentlich

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ß

Lösungen:

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");
}
vote_ok
von Jarling (50 Punkte) - 23.01.2021 um 18:12 Uhr
Quellcode ausblenden C-Code
void zahlenpyramide()
{
	int mod, pos, row;

	for (int i = 0; i < 200; i++) {
		mod = (i % 20);
		row = i / 20;
		
		if (mod < 10)
			pos = 10 - mod;
		else
			pos = -(10 - mod);

		if (pos > row)
			printf(" ");
		else
			printf("%i", pos);

		if (mod == 19)
			printf("\n");
	}
}
1801169

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.