0 Daumen
638 Aufrufe

Programmieraufgabe:

Implementieren Sie die Funktion void loops(int n), die Ausgaben der folgenden Form erzeugt (für n ≥3). Sie dürfen beliebige Hilfsfunktionen implementieren.

Beispiel für n = 5:

+ - - - - - - - - +  
\ 0  1    2  3   \
\  4  5   6   7   \
   \  8  9  0    1   \
     + - - - - - - - - +

Thema: Hollow Rhombus Pattern mit C erschaffen.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Implementierung der Funktion loops(int n)

Um diese Aufgabe zu lösen, muss die Funktion loops(int n) in der Programmiersprache C implementiert werden. Die Funktion soll ein Muster in Form eines ausgehöhlten Rhombus drucken, wobei die Ecken des Rhombus durch + markiert sind, die Seiten durch - und \ , und die innere Diagonale zählt von 0 bis 9 wiederholend.

Hier ist ein möglicher Ansatz, um diese Aufgabe zu lösen:

- Zuerst wird der obere Teil des Rhombus gedruckt, der aus einer Linie mit + an den Enden und - dazwischen besteht.
- Dann wird der innere Teil des Rhombus gedruckt, wobei jede Zeile mit Backslashes (\) und Leerzeichen beginnt, um zur Mitte zu führen, wo die Zahlen gedruckt werden. Die Zahlen erhöhen sich mit jedem Schritt und werden nach Erreichen von 9 zurückgesetzt.
- Abschließend wird der untere Teil des Rhombus identisch zum oberen gedruckt.

Der Code könnte wie folgt aussehen:

c
#include <stdio.h>

// Hilfsfunktion, um den oberen und unteren Rand zu drucken
void printBorder(int n) {
    printf("+");
    for (int i = 0; i < 2*n - 1; i++) {
        printf("-");
    }
    printf("+\n");
}

// Hauptfunktion, um den Hohlrhombus zu drucken
void loops(int n) {
    if (n < 3) return; // Bedingung n ≥ 3
    
    int num = 0; // Startwert für Zahlen

    // Drucke oberen Rand
    printBorder(n);

    // Drucke inneren Teil
    for (int i = 0; i < n - 1; i++) {
        // Drucke führende Leerzeichen und Backslashes
        for (int space = 0; space < i; space++) {
            printf(" ");
        }
        printf("\\ ");
        
        // Drucke Zahlen
        for (int j = 0; j < n-1-i; j++) {
            printf("%d ", num);
            num = (num + 1) % 10; // Zähler erhöhen und bei 10 zurücksetzen
        }

        printf("\\\n");
    }

    // Drucke unteren Rand
    printBorder(n);
}

int main() {
    int n = 5; // Beispielwert für n
    loops(n); // Funktion aufrufen
    return 0;
}


Dieser Code definiert zuerst eine Hilfsfunktion printBorder(int n), um den oberen und unteren Rand des Rhombus zu zeichnen. Die Hauptfunktion loops(int n) verwendet diese Hilfsfunktion zusammen mit Schleifen für die innere Logik, um das angegebene Muster zu erstellen. Beachten Sie, dass die Ziffern in der inneren Diagonale kontinuierlich von 0 bis 9 zählen und dann zurücksetzen.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community