🟢 Beginner  ·  Lesson 16

Pattern Programs

Pattern Programs

Understanding Pattern Programs

Pattern programs are a classic way to practice nested loops. The key insight is:

  • Outer loop → controls the number of rows
  • Inner loop → controls the number of columns (characters per row)
  • The relationship between the row number and column count determines the shape
💡 Strategy to Solve Any Pattern
  1. Look at the pattern — how many rows?
  2. In each row, what's printed and how many times?
  3. Find the relationship between row number (i) and column count (j)
  4. Write outer loop for rows, inner loop(s) for columns

Star Patterns

Pattern 1: Right Triangle (Increasing)

C Language
#include <stdio.h>
int main() {
    int n = 5;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= i; j++)   // j goes from 1 to i
            printf("* ");
        printf("\n");
    }
    return 0;
}
* * * * * * * * * * * * * * *

Pattern 2: Inverted Right Triangle

C Language
int n = 5;
for (int i = n; i >= 1; i--) {     // i starts from n, counts down
    for (int j = 1; j <= i; j++)
        printf("* ");
    printf("\n");
}
* * * * * * * * * * * * * * *

Pattern 3: Square Pattern

C Language
int n = 4;
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++)   // Always n columns
        printf("* ");
    printf("\n");
}
* * * * * * * * * * * * * * * *

Pattern 4: Hollow Rectangle

C Language
int rows = 4, cols = 6;
for (int i = 1; i <= rows; i++) {
    for (int j = 1; j <= cols; j++) {
        if (i == 1 || i == rows || j == 1 || j == cols)
            printf("* ");   // Border only
        else
            printf("  ");   // Interior spaces
    }
    printf("\n");
}
* * * * * * * * * * * * * * * *

Number Patterns

Pattern 5: Floyd's Triangle

C Language
int n = 5, num = 1;
for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= i; j++)
        printf("%3d", num++);   // num increases continuously
    printf("\n");
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Pattern 6: Number Triangle (1 to i)

C Language
for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= i; j++)
        printf("%d ", j);
    printf("\n");
}
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

Pattern 7: Same Number Each Row

C Language
for (int i = 1; i <= 5; i++) {
    for (int j = 1; j <= i; j++)
        printf("%d ", i);   // Print row number i times
    printf("\n");
}
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

Alphabet Patterns

Pattern 8: Alphabet Triangle

C Language
for (int i = 1; i <= 5; i++) {
    for (int j = 0; j < i; j++)
        printf("%c ", (char)('A' + j));  // A B C D E
    printf("\n");
}
A A B A B C A B C D A B C D E

Pyramid Patterns (Centered)

Pattern 9: Centered Star Pyramid

C Language
#include <stdio.h>
int main() {
    int n = 5;
    for (int i = 1; i <= n; i++) {
        for (int s = 1; s <= n - i; s++)   // Leading spaces
            printf(" ");
        for (int j = 1; j <= 2*i - 1; j++)  // Stars: 2i-1
            printf("*");
        printf("\n");
    }
    return 0;
}
* *** ***** ******* *********

Pattern 10: Diamond Pattern

C Language
#include <stdio.h>
int main() {
    int n = 4;
    // Upper half
    for (int i = 1; i <= n; i++) {
        for (int s = 1; s <= n - i; s++) printf(" ");
        for (int j = 1; j <= 2*i - 1; j++) printf("*");
        printf("\n");
    }
    // Lower half
    for (int i = n - 1; i >= 1; i--) {
        for (int s = 1; s <= n - i; s++) printf(" ");
        for (int j = 1; j <= 2*i - 1; j++) printf("*");
        printf("\n");
    }
    return 0;
}
* *** ***** ******* ***** *** *

Practice Summary

You've learned 10 patterns. Try these on your own:

#Pattern NameTechnique
1Right Triangle ★j from 1 to i
2Inverted Triangle ★i from n down to 1
3Square ★j always from 1 to n
4Hollow Rectangle ★★border condition
5Floyd's Triangle ★★continuous counter num++
6Number 1-to-i ★print j
7Same Number Each Row ★print i
8Alphabet Triangle ★★'A' + j
9Centered Pyramid ★★spaces + 2i-1 stars
10Diamond ★★★pyramid + inverted
🏋️ More Practice Patterns

Try: (1) Right-aligned triangle (spaces on left) (2) Pascal's triangle (3) Butterfly pattern (4) X pattern (5) Checkerboard pattern (alternating * and space)

Patterns समझना

Pattern programs nested loops practice का classic तरीका है। Key insight:

  • Outer looprows की संख्या control करता है
  • Inner loopcolumns की संख्या (हर row में characters) control करता है
  • Row number (i) और column count (j) का relationship shape determine करता है
💡 हर Pattern Solve करने की Strategy
  1. Pattern देखो — कितने rows हैं?
  2. हर row में क्या print होता है और कितनी बार?
  3. Row number (i) और column count (j) का relation ढूंढो
  4. Rows के लिए outer loop, columns के लिए inner loop लिखो

Star Patterns

Pattern 1: Right Triangle

C Language
int n = 5;
for(int i=1; i<=n; i++) {
    for(int j=1; j<=i; j++) printf("* "); // j, 1 से i तक
    printf("\n");
}
* * * * * * * * * * * * * * *

Pattern 2: Inverted Triangle

C Language
for(int i=5; i>=1; i--) {    // i n से शुरू, नीचे जाता है
    for(int j=1; j<=i; j++) printf("* ");
    printf("\n");
}
* * * * * * * * * * * * * * *

Number Patterns

Pattern 3: Floyd's Triangle

C Language
int num = 1;
for(int i=1; i<=5; i++) {
    for(int j=1; j<=i; j++) printf("%3d", num++);
    printf("\n");
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Pattern 4: Ek Row mein Same Number

C Language
for(int i=1; i<=5; i++) {
    for(int j=1; j<=i; j++) printf("%d ", i); // row number i print
    printf("\n");
}
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5

Pyramid Pattern (Centered)

C Language – Star Pyramid
int n = 5;
for(int i=1; i<=n; i++) {
    for(int s=1; s<=n-i; s++) printf(" ");   // Spaces
    for(int j=1; j<=2*i-1; j++) printf("*"); // Stars: 2i-1
    printf("\n");
}
* *** ***** ******* *********

Practice Summary

#PatternTechnique
1Right Trianglej, 1 से i तक
2Inverted Trianglei, n से 1 तक
3Floyd's Trianglecontinuous counter num++
4Same Numberi print करो i बार
5Centered Pyramidspaces + 2i-1 stars
🏋️ और Practice Patterns

Try करें: (1) Right-aligned triangle (left side spaces) (2) Pascal's triangle (3) Diamond pattern (4) Hollow triangle (5) Checkerboard (* और space alternate)

← Back to C Tutorial