×

Advanced Coding & Software Engineering Program

Duration: 1 Year (12 Months)

Join our premium 1-year program to master cutting-edge technologies and become an industry-ready Software Engineer!

Course Coverage

  • Languages: C, C++, Java, JavaScript, Python
  • Web Technologies: HTML, CSS, Bootstrap 5, MERN Stack, Full Stack Development
  • Databases: MySQL, MongoDB
  • Data Science Libraries: Pandas, NumPy
  • Development Tools: Visual Studio Code, IntelliJ IDEA, PyCharm, Postman, Git, GitHub
  • Cloud Platforms: Vercel, MongoDB Atlas

Program Highlights

  • Live Classes: Interactive sessions with real-time doubt resolution
  • Hands-On Sessions: Practical coding exercises to build real-world skills
  • Industry Experts: Learn from professionals with years of experience
  • Live Project: Work on real-world projects to apply your skills
  • Get Certificate: Earn a professional certificate upon program completion

Course Fee: Only ₹1020 / month
Limited Period Offer!

Nested Loops and Pattern Programs in C: A Beginner's Guide to Creative Coding



Last Updated on: 11th Jul 2025 02:20:14 AM

Nested loops in C are a powerful tool for creating complex logic and visually appealing patterns. By combining loops within loops, you can generate intricate designs or process multi-dimensional data. In this tutorial, we'll explore nested loops and various pattern programs in C, from basic to advanced, with clear explanations, unique examples, and their outputs. Whether you're a beginner or looking to level up, this guide will make learning fun and engaging. Let’s dive into the art of patterns!

 

What Are Nested Loops?

A nested loop is a loop inside another loop. The inner loop runs completely for each iteration of the outer loop, allowing you to handle tasks like iterating over a grid or printing patterns.

 

Syntax:

for (initialization1; condition1; update1) { // Outer loop
    for (initialization2; condition2; update2) { // Inner loop
        // Code to execute
    }
}

 

  • The outer loop controls the number of times the inner loop runs.

  • The inner loop completes all its iterations for each single iteration of the outer loop.

You can nest for, while, or do-while loops in any combination, but for loops are most common for patterns due to their concise syntax.

 

Why Use Nested Loops for Patterns?

Pattern programs use nested loops to print characters (like *, numbers, or letters) in specific arrangements, such as triangles, pyramids, or diamonds. They’re great for:

  • Practicing loop logic and control flow.

  • Visualizing how nested loops work.

  • Building creative outputs for projects or learning.

 

Let’s explore different types of pattern programs, starting with simple ones and moving to advanced designs.

 

1. Basic Pattern: Square Pattern

A square pattern prints the same number of characters in each row, forming a square grid.

 

Example: Print a 4x4 Square of Stars

 

#include <stdio.h>
int main() {
    int size = 4;
    for (int i = 1; i <= size; i++) { // Outer loop for rows
        for (int j = 1; j <= size; j++) { // Inner loop for columns
            printf("* ");
        }
        printf("\n"); // New line after each row
    }
    return 0;
}

 

Output:

* * * * 
* * * * 
* * * * 
* * * * 

Explanation:

  • Outer loop (i): Controls the number of rows (4 iterations).

  • Inner loop (j): Prints 4 stars (*) in each row.

  • After each inner loop completes, printf("\n") moves to the next line.

 

2. Number Pattern: Incremental Numbers in Rows

This pattern prints numbers incrementally across rows, useful for understanding loop counters.

 

Example: Number Grid

 

#include <stdio.h>
int main() {
    int size = 5;
    for (int i = 1; i <= size; i++) {
        for (int j = 1; j <= size; j++) {
            printf("%d ", j);
        }
        printf("\n");
    }
    return 0;
}

 

Output:

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5

Explanation:

  • The inner loop prints numbers 1 to 5 for each row.

  • The outer loop repeats this for 5 rows, creating a grid.

 

3. Triangle Pattern: Right-Angled Triangle

This pattern prints a right-angled triangle by increasing the number of characters in each row.

 

Example: Star Triangle

 

#include <stdioa.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:


* * 
* * * 
* * * * 
* * * * * 

Explanation:

  • The outer loop (i) controls the rows.

  • The inner loop (j) prints stars from 1 to i, increasing the number of stars per row.

  • This creates a right-angled triangle with 5 rows.

 

4. Pyramid Pattern: Centered Triangle

A pyramid pattern centers the characters, requiring spaces before the stars to align them.

 

Example: Star Pyramid

 

#include <stdio.h>
int main() {
    int rows = 5;
    for (int i = 1; i <= rows; i++) {
        // Print spaces
        for (int j = 1; j <= rows - i; j++) {
            printf("  ");
        }
        // Print stars
        for (int j = 1; j <= 2 * i - 1; j++) {
            printf("* ");
        }
        printf("\n");
    }
    return 0;
}

 

Output:

        * 
      * * * 
    * * * * * 
  * * * * * * * 
* * * * * * * * * 

Explanation:

  • First inner loop: Prints rows - i spaces to center the stars.

  • Second inner loop: Prints 2 * i - 1 stars to form the pyramid shape.

  • The outer loop runs for 5 rows, creating a centered triangle.

 

5. Advanced Pattern: Diamond Pattern

A diamond pattern combines an upper pyramid (increasing stars) and a lower pyramid (decreasing stars).

 

Example: Diamond of Stars

 

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

 

Output:

        * 
      * * * 
    * * * * * 
  * * * * * * * 
* * * * * * * * * 
  * * * * * * * 
    * * * * * 
      * * * 
        * 

Explanation:

  • Upper half: Same as the pyramid pattern, printing spaces and stars.

  • Lower half: Mirrors the upper half but decreases the number of stars (2 * i - 1) and increases spaces (rows - i).

  • The result is a diamond shape with 5 rows in each half.

 

6. Advanced Pattern: Pascal’s Triangle

Pascal’s triangle is a number pattern where each number is the sum of the two numbers above it, used in combinatorics.

 

Example: Pascal’s Triangle

#include <stdio.h>
int main() {
    int rows = 5, coef = 1;
    for (int i = 0; i < rows; i++) {
        // Print spaces
        for (int j = 1; j <= rows - i; j++) {
            printf("  ");
        }
        // Print coefficients
        for (int j = 0; j <= i; j++) {
            if (j == 0 || i == 0)
                coef = 1;
            else
                coef = coef * (i - j + 1) / j;
            printf("%4d", coef);
        }
        printf("\n");
    }
    return 0;
}

 

Output:

          1
        1   1
      1   2   1
    1   3   3   1
  1   4   6   4   1

Explanation:

  • Outer loop: Controls the rows.

  • First inner loop: Prints spaces to center the numbers.

  • Second inner loop: Calculates binomial coefficients using the formula C(n, k) = C(n, k-1) * (n - k + 1) / k.

  • The %4d format ensures aligned numbers, creating a clean Pascal’s triangle.

 

7. Advanced Pattern: Alphabet Pyramid

This pattern prints alphabets in a pyramid shape, advancing from A to a user-specified letter.

 

Example: Alphabet Pyramid

 

#include <stdio.h>
int main() {
    int rows;
    printf("Enter number of rows (max 26 for A-Z): ");
    scanf("%d", &rows);
    if (rows > 26) rows = 26; // Limit to alphabet size
    for (int i = 0; i < rows; i++) {
        // Print spaces
        for (int j = 1; j <= rows - i - 1; j++) {
            printf("  ");
        }
        // Print increasing alphabets
        for (int j = 0; j <= i; j++) {
            printf("%c ", 'A' + j);
        }
        // Print decreasing alphabets
        for (int j = i - 1; j >= 0; j--) {
            printf("%c ", 'A' + j);
        }
        printf("\n");
    }
    return 0;
}

 

Output (if user enters 4):

Enter number of rows (max 26 for A-Z): 4
      A 
    A B A 
  A B C B A 
A B C D C B A 


Online - Chat Now
Let’s Connect

Inquiry Sent!

Your message has been successfully sent. We'll get back to you soon!

iKeySkills Logo