Heim > Backend-Entwicklung > C++ > Hauptteil

Beherrschen gefüllter Muster: Ein umfassender Leitfaden mit Codebeispielen

WBOY
Freigeben: 2024-07-18 21:23:21
Original
510 Leute haben es durchsucht

Mastering Filled Patterns: A Comprehensive Guide with Code Examples

Willkommen zu unserem umfassenden Leitfaden zum Erstellen verschiedener gefüllter Muster mithilfe von Schleifen in der C-Programmierung! In diesem Tutorial gehen wir Schritt für Schritt durch die Anleitung zum Zeichnen von 18 verschiedenen gefüllten Mustern. Diese Muster reichen von Grundformen wie Quadraten und Dreiecken bis hin zu komplexeren Formen wie Rauten, Sechsecken und Fünfecken. Jedes Muster wird mithilfe verschachtelter Schleifen erstellt, was es zu einer hervorragenden Übung für Anfänger macht, um Kontrollstrukturen in C zu üben. Lassen Sie uns eintauchen!
Den gesamten Code finden Sie in unserem GitHub-Repository.

Inhaltsverzeichnis

  1. Einführung in verschachtelte Schleifen
  2. Gefülltes Quadrat
  3. Gefülltes rechtwinkliges Dreieck
  4. Gefülltes umgekehrtes rechtwinkliges Dreieck
  5. Gefülltes rechtsbündiges Dreieck
  6. Gefülltes rechtsbündiges umgekehrtes Dreieck
  7. Gefülltes rechtes Pascal-Dreieck
  8. Gefülltes linkes Pascal-Dreieck
  9. Gefülltes gleichseitiges Dreieck
  10. Gefülltes umgekehrtes gleichseitiges Dreieck
  11. Gefüllte Pyramide
  12. Gefüllte umgekehrte Pyramide
  13. Gefüllter Diamant
  14. Gefüllte Sanduhr
  15. Gefüllte Raute
  16. Gefülltes Parallelogramm
  17. Gefülltes Sechseck
  18. Gefülltes Fünfeck
  19. Gefülltes umgekehrtes Fünfeck
  20. Fazit

Einführung in verschachtelte Schleifen

Bevor wir mit den Mustern beginnen, ist es wichtig, das Konzept der verschachtelten Schleifen zu verstehen. Eine verschachtelte Schleife ist eine Schleife innerhalb einer anderen Schleife. Diese Struktur ist besonders nützlich für die Handhabung mehrdimensionaler Arrays und für die Generierung von Mustern. In C sieht eine typische verschachtelte Schleifenstruktur so aus:

for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        // Code to execute
    }
}
Nach dem Login kopieren

Gefülltes Quadrat

Erläuterung:

  • Das gefüllte Quadratmuster ist eines der am einfachsten zu erstellenden Muster.
  • Es besteht aus n Zeilen und n Spalten, wobei jede Zelle das gleiche Zeichen enthält.
  • Wir verwenden zwei verschachtelte Schleifen, um jede Zeile und Spalte zu durchlaufen und das Zeichen in jeder Zelle auszugeben.
int n = 5; // size of the square
char ch = '*';

printf("1. Filled Square:\n");
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
        printf("%c  ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

*  *  *  *  *  
*  *  *  *  *  
*  *  *  *  *  
*  *  *  *  *  
*  *  *  *  *  
Nach dem Login kopieren

Gefülltes rechtwinkliges Dreieck

Erläuterung:

  • Das gefüllte rechtwinklige Dreiecksmuster beginnt mit einem Zeichen in der ersten Reihe und erhöht sich in jeder folgenden Reihe um ein Zeichen.
  • Dieses Muster wird durch die Verwendung von zwei verschachtelten Schleifen erreicht. Die äußere Schleife steuert die Anzahl der Zeilen und die innere Schleife steuert die Anzahl der in jeder Zeile gedruckten Zeichen.
printf("2. Filled Right Triangle:\n");
for (int i = 0; i < n; i++) {
    for (int j = 0; j <= i; j++) {
        printf("%c  ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

*  
*  *  
*  *  *  
*  *  *  *  
*  *  *  *  *   
Nach dem Login kopieren

Gefülltes umgekehrtes rechtwinkliges Dreieck

Erläuterung:

  • Das gefüllte umgekehrte rechtwinklige Dreiecksmuster ist das Gegenteil des gefüllten rechtwinkligen Dreiecks.
  • Es beginnt mit n Zeichen in der ersten Zeile und verringert sich in jeder folgenden Zeile um ein Zeichen.
  • Ähnlich wie das gefüllte rechtwinklige Dreieck wird dieses Muster aus zwei verschachtelten Schleifen erstellt.
printf("3. Filled Inverted Right Triangle:\n");
for (int i = 0; i < n; i++) {
    for (int j = n; j > i; j--) {
        printf("%c  ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

*  *  *  *  *  
*  *  *  *  
*  *  *  
*  *  
*  
Nach dem Login kopieren

Gefülltes rechtsbündiges Dreieck

Erläuterung:

  • Das gefüllte, rechtsbündige Dreiecksmuster ähnelt dem gefüllten, rechtwinkligen Dreieck, aber das Dreieck ist rechtsbündig.
  • Dieses Muster wird durch das Einfügen von Leerzeichen vor jeder Zeile erreicht, wodurch ein rechtsbündiges Erscheinungsbild entsteht.
printf("4. Filled Right Aligned Triangle:\n");
for (int i = 0; i < n; i++) {
    for (int j = n - 1; j > i; j--) {
        printf("   ");
    }
    for (int j = 0; j <= i; j++) {
        printf("%c  ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

            *  
         *  *  
      *  *  *  
   *  *  *  *  
*  *  *  *  * 
Nach dem Login kopieren

Gefülltes rechtsbündiges umgekehrtes Dreieck

Erläuterung:

  • Das gefüllte, rechtsbündig ausgerichtete umgekehrte Dreiecksmuster ist das Gegenteil des gefüllten, rechtsbündig ausgerichteten Dreiecks.
  • Es beginnt mit einem Zeichen in der ersten Zeile und erhöht sich in jeder folgenden Zeile um ein Zeichen, aber das Dreieck ist rechtsbündig.
printf("5. Filled Right Aligned Inverted Triangle:\n");
for (int i = 0; i < n; i++) {
    for (int j = 1; j <= i; j++) {
        printf("   ");
    }
    for (int j = n; j > i; j--) {
        printf("%c  ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

*  *  *  *  *  
   *  *  *  *  
      *  *  *  
         *  *  
            *  
Nach dem Login kopieren

Gefülltes rechtes Pascal-Dreieck

Erläuterung:

  • Das gefüllte rechtwinklige Pascal-Dreieckmuster kombiniert das rechtwinklige Dreieck und das umgekehrte rechtwinklige Dreieck zu einem Pascal-ähnlichen Dreieck.
  • Die erste Hälfte des Musters ähnelt dem gefüllten rechtwinkligen Dreieck und die zweite Hälfte ähnelt dem gefüllten umgekehrten rechtwinkligen Dreieck.
printf("6. Filled Right Pascal Triangle:\n");
for (int i = 0; i < n; i++) {
    for (int j = 0; j < i + 1; j++) {
        printf("%c  ", ch);
    }
    printf("\n");
}
for (int i = 0; i < n; i++) {
    for (int j = n; j > i + 1; j--) {
        printf("%c  ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

*  
*  *  
*  *  *  
*  *  *  *  
*  *  *  *  *  
*  *  *  *  
*  *  *  
*  *  
*    
Nach dem Login kopieren

Gefülltes linkes Pascal-Dreieck

Erläuterung:

  • Das gefüllte linke Pascal-Dreiecksmuster ähnelt dem gefüllten rechten Pascal-Dreieck, ist jedoch linksbündig.
  • Die erste Hälfte des Musters ähnelt dem gefüllten rechtsbündigen Dreieck und die zweite Hälfte ähnelt dem gefüllten rechtsbündigen umgekehrten Dreieck.
printf("7. Filled Left Pascal Triangle:\n");
for (int i = 0; i < n; i++) {
    for (int j = n - 1; j > i; j--) {
        printf("   ");
    }
    for (int j = 0; j < i + 1; j++) {
        printf("%c  ", ch);
    }
    printf("\n");
}

for (int i = 0; i < n; i++) {
    for (int j = 0; j < i + 1; j++) {
        printf("   ");
    }
    for (int j = n - 1; j > i; j--) {
        printf("%c  ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

            *  
         *  *  
      *  *  *  
   *  *  *  *  
*  *  *  *  *  
   *  *  *  *  
      *  *  *  
         *  *  
            *   
Nach dem Login kopieren

Gefülltes gleichseitiges Dreieck

Erläuterung:

  • Das gefüllte gleichseitige Dreiecksmuster hat eine symmetrische Form, wobei jede Reihe zentriert ist.
  • Um dies zu erreichen, drucken wir vor jeder Zeile Leerzeichen, um die Zeichen zu zentrieren.
printf("8. Filled Equilateral Triangle:\n");
for (int i = 0; i < n; i++) {
    for (int j = n - 1; j > i; j--) {
        printf(" ");
    }
    for (int j = 0; j <= i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

    * 
   * * 
  * * * 
 * * * * 
* * * * *  
Nach dem Login kopieren

Gefülltes umgekehrtes gleichseitiges Dreieck

Erläuterung:

  • Das gefüllte umgekehrte gleichseitige Dreiecksmuster ist die umgekehrte Version des gefüllten gleichseitigen Dreiecks.
  • Es beginnt mit n Zeichen an der Basis und verringert sich in der Mitte um ein Zeichen pro Zeile.
printf("9. Filled Inverted Equilateral Triangle:\n");
for (int i = n - 1; i >= 0; i--) {
    for (int j = n - 1; j > i; j--) {
        printf(" ");
    }
    for (int j = 0; j <= i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

* * * * * 
 * * * * 
  * * * 
   * * 
    *   
Nach dem Login kopieren

Gefüllte Pyramide

Erläuterung:

  • Das gefüllte Pyramidenmuster beginnt mit einem Zeichen oben und erhöht sich um zwei Zeichen pro Reihe, sodass eine symmetrische Pyramide entsteht.
  • Wir verwenden Leerzeichen, um jede Zeile zu zentrieren.
printf("10. Filled Pyramid:\n");
for (int i = 0; i < n; i++) {
    for (int j = n - 1; j > i; j--) {
        printf(" ");
    }
    for (int j = 0; j < (2 * i + 1); j++) {
        printf("%c", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

    *
   ***
  *****
 *******
*********  
Nach dem Login kopieren

Gefüllte umgekehrte Pyramide

Erläuterung:

  • Das gefüllte umgekehrte Pyramidenmuster ist das Gegenteil der gefüllten Pyramide.
  • Es beginnt mit 2 * n - 1 Zeichen oben und nimmt in der Mitte um zwei Zeichen pro Zeile ab.
printf("11. Filled Inverted Pyramid:\n");
for (int i = n; i > 0; i--) {
    for (int j = n - i; j > 0; j--) {
        printf(" ");
    }
    for (int j = 0; j < (2 * i - 1); j++) {
        printf("%c", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

*********
 *******
  *****
   ***
    *  
Nach dem Login kopieren

Gefüllter Diamant

Erläuterung:

  • Das gefüllte Rautenmuster entsteht durch die Kombination des gefüllten gleichseitigen Dreiecks und des gefüllten umgekehrten gleichseitigen Dreiecks.
  • Es entsteht eine symmetrische Rautenform.
printf("12. Filled Diamond:\n");
for (int i = 0; i < n; i++) {
    for (int j = n - 1; j > i; j--) {
        printf(" ");
    }
    for (int j = 0; j <= i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
for (int i = 0; i < n - 1; i++) {
    for (int j = 0; j <= i; j++) {
        printf(" ");
    }
    for (int j = n - 1; j > i; j--) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Ausgabe:

    * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    *  
Nach dem Login kopieren

Gefüllte Sanduhr

Erläuterung:

  • Das gefüllte Sanduhrmuster kombiniert ein umgekehrtes gleichseitiges Dreieck und ein gleichseitiges Dreieck und bildet so eine Sanduhrform.
  • Jede Zeile wird durch Hinzufügen von Leerzeichen zentriert.
printf("13. Filled Hourglass:\n");
for (int i = 0; i < n; i++) {
    for (int j = 0; j < i; j++) {
        printf(" ");
    }
    for (int j = 0; j < (n - i); j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
for (int i = 1; i < n; i++) {
    for (int j = n - 1; j > i; j--) {
        printf(" ");
    }
    for (int j = 0; j <= i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Output:

* * * * * 
 * * * * 
  * * * 
   * * 
    * 
   * * 
  * * * 
 * * * * 
* * * * *   
Nach dem Login kopieren

Filled Rhombus

Explanation:

  • The filled rhombus pattern consists of rows where each row is shifted to the right by spaces.
  • This creates a diamond-like shape with equal length sides.
printf("14. Filled Rhombus:\n");
for (int i = 0; i < n; i++) {
    for (int j = 0; j < n - i - 1; j++) {
        printf(" ");
    }
    for (int j = 0; j < n; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Output:

    * * * * * 
   * * * * * 
  * * * * * 
 * * * * * 
* * * * *  
Nach dem Login kopieren

Filled Parallelogram

Explanation:

  • The filled parallelogram pattern is created by shifting each row to the right.
  • It looks like a rectangle leaning to one side.
printf("15. Filled Parallelogram:\n");
for (int i = 0; i < n; i++) {
    for (int j = 0; j < i; j++) {
        printf(" ");
    }
    for (int j = 0; j < n * 2; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Output:

* * * * * * * * * * 
 * * * * * * * * * * 
  * * * * * * * * * * 
   * * * * * * * * * * 
    * * * * * * * * * *  
Nach dem Login kopieren

Filled Hexagon

Explanation:

  • The filled hexagon pattern has a wider middle section, with each row increasing and then decreasing in width.
  • This creates a hexagonal shape.
printf("16. Filled Hexagon:\n");
for (int i = 0; i < n / 2; i++) {
    for (int j = n / 2 - i; j > 0; j--) {
        printf(" ");
    }
    for (int j = 0; j < n + 1 * i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
for (int i = n / 2; i >= 0; i--) {
    for (int j = 0; j < n / 2 - i; j++) {
        printf(" ");
    }
    for (int j = 0; j < n + i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Output:

  * * * * * 
 * * * * * * 
* * * * * * * 
 * * * * * * 
  * * * * *  
Nach dem Login kopieren

Filled Pentagon

Explanation:

  • The filled pentagon pattern starts with one character at the top and increases, forming a wider base.
  • This creates a pentagon-like shape.
printf("17. Filled Pentagon:\n");
for (int i = 0; i < n + 1; i++) {
    for (int j = n; j > i; j--) {
        printf(" ");
    }
    for (int j = 0; j < (i + 1); j++) {
        printf(" %c", ch);
    }
    printf("\n");
}
for (int i = n / 2; i >= 0; i--) {
    for (int j = 0; j < n / 2 - i; j++) {
        printf(" ");
    }
    for (int j = 0; j < n + i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Output:

      *
     * *
    * * *
   * * * *
  * * * * *
 * * * * * *
* * * * * * * 
 * * * * * * 
  * * * * *  
Nach dem Login kopieren

Filled Inverted Pentagon

Explanation:

  • The filled inverted pentagon pattern is the inverted version of the filled pentagon.
  • It starts with the wider base and decreases, forming an inverted pentagon shape.
printf("18. Filled Inverted Pentagon:\n");
for (int i = 0; i <= n / 2; i++) {
    for (int j = 0; j < n / 2 - i; j++) {
        printf(" ");
    }
    for (int j = 0; j < n + i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
for (int i = n + 1; i > 0; i--) {
    for (int j = n + 2; j > i; j--) {
        printf(" ");
    }
    for (int j = 0; j < i; j++) {
        printf("%c ", ch);
    }
    printf("\n");
}
Nach dem Login kopieren

Output:

  * * * * * 
 * * * * * * 
* * * * * * * 
 * * * * * * 
  * * * * * 
   * * * * 
    * * * 
     * * 
      *   
Nach dem Login kopieren

Conclusion

Learning to create these filled patterns in C is an excellent way to practice using nested loops and enhance your understanding of how loops work. By experimenting with different values and shapes, you can deepen your understanding of control structures in C and develop a keen eye for detail and logic. Whether you're a beginner or looking to brush up on your skills, these patterns provide a solid foundation for mastering loops in C programming.

We hope this guide has been helpful and encourages you to explore more complex patterns and designs. Happy coding!

For more tutorials and coding tips, be sure to subscribe to our blog and follow us on social media!

Das obige ist der detaillierte Inhalt vonBeherrschen gefüllter Muster: Ein umfassender Leitfaden mit Codebeispielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage