0
0
CProgramBeginner · 2 min read

C Program to Print Star Pattern - Simple Example

You can print a star pattern in C using nested for loops; for example, for(int i=1; i<=5; i++){ for(int j=1; j<=i; j++){ printf("*"); } printf("\n"); } prints a right-angled triangle of stars.
📋

Examples

Input5
Output* ** *** **** *****
Input3
Output* ** ***
Input1
Output*
🧠

How to Think About It

To print a star pattern, think of rows and columns. For each row, print stars equal to the row number. Use one loop to go through rows and a nested loop to print stars in each row.
📐

Algorithm

1
Get the number of rows as input.
2
Start a loop from 1 to the number of rows.
3
Inside this loop, start another loop from 1 to the current row number.
4
Print a star in the inner loop.
5
After the inner loop ends, print a newline to move to the next row.
6
Repeat until all rows are printed.
💻

Code

c
#include <stdio.h>

int main() {
    int rows = 5;
    for (int i = 1; i <= rows; i++) {
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}
Output
* ** *** **** *****
🔍

Dry Run

Let's trace printing 3 rows of stars through the code.

1

Start outer loop with i=1

Inner loop runs j=1 to 1, prints '*' once, then newline.

2

Outer loop i=2

Inner loop runs j=1 to 2, prints '**', then newline.

3

Outer loop i=3

Inner loop runs j=1 to 3, prints '***', then newline.

i (row)j (star count)Output this row
11*
22**
33***
💡

Why This Works

Step 1: Outer loop controls rows

The outer for loop runs from 1 to the number of rows, deciding how many lines to print.

Step 2: Inner loop prints stars

The inner for loop runs from 1 to the current row number, printing that many stars.

Step 3: Newline after each row

After printing stars for a row, printf("\n") moves the cursor to the next line.

🔄

Alternative Approaches

Using while loops
c
#include <stdio.h>

int main() {
    int rows = 5, i = 1;
    while (i <= rows) {
        int j = 1;
        while (j <= i) {
            printf("*");
            j++;
        }
        printf("\n");
        i++;
    }
    return 0;
}
This uses <code>while</code> loops instead of <code>for</code> loops, which some beginners find easier to understand.
Printing inverted star pattern
c
#include <stdio.h>

int main() {
    int rows = 5;
    for (int i = rows; i >= 1; i--) {
        for (int j = 1; j <= i; j++) {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}
This prints stars in decreasing order, creating an inverted triangle pattern.

Complexity: O(n^2) time, O(1) space

Time Complexity

The program uses nested loops: the outer loop runs n times and the inner loop runs up to n times, resulting in O(n^2) time.

Space Complexity

The program uses a fixed amount of extra space for variables, so space complexity is O(1).

Which Approach is Fastest?

All approaches use nested loops with similar time complexity; choice depends on readability and pattern style.

ApproachTimeSpaceBest For
For loopsO(n^2)O(1)Standard star patterns
While loopsO(n^2)O(1)Beginners preferring while syntax
Inverted patternO(n^2)O(1)Different star shapes
💡
Use nested loops where the outer loop controls rows and the inner loop prints stars per row.
⚠️
Forgetting to print a newline after each row causes all stars to print on one line.