Friday, July 31, 2026

Printing a Mirrored Right Triangle | Simple Shape Patterns in C

Moving from simple triangles to aligned patterns is a great way to advance your C programming skills. A "Left Triangle" (or Mirrored Right Triangle) requires us to align our stars to the right side of the console. To achieve this, we must learn to manage two distinct elements per row: leading spaces and the stars themselves.

What You Will Learn

This tutorial will guide you through creating a C program that prints a right-aligned triangle. You will learn the importance of using a dedicated inner loop to handle "padding" spaces before your stars are printed, which is a fundamental technique for creating complex, symmetric patterns.

Prerequisites:

  • Understanding of nested for loops.

  • Familiarity with the printf function.

Final Output:

For a triangle height of 5, the output will look like this:

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

Deconstructing the Pattern: The Logic

1. The Visual Representation

The pattern consists of two parts per row:

  • Leading Spaces: These decrease as the row index increases, creating the "mirror" effect.

  • Stars: These increase as the row index increases, forming the triangle itself.

2. Problem Statement

The objective is to print a right-aligned half pyramid. We must calculate the correct number of spaces for each row and then print the required number of stars.

3. Pattern Analysis & Logic

  • Outer Loop: Manages the rows, running from $i = 1$ to $n$.

  • Space Loop: To align the stars, we print $(n - i)$ spaces before the stars in each row.

  • Star Loop: This loop prints $i$ stars in each row, starting from 1 up to $i$.

The Code Implementation

#include <stdio.h>

int main() {
    int n = 5; // Height of the triangle

    // Outer loop for rows
    for (int i = 1; i <= n; i++) {
        
        // Loop to print leading spaces
        for (int j = 1; j <= n - i; j++) {
            printf(" ");
        }

        // Loop to print stars
        for (int k = 1; k <= i; k++) {
            printf("*");
        }
        
        // Move to the next line
        printf("\n");
    }

    return 0;
}

Explanation:

  • Space Loop (j): The formula n - i ensures that as the row index $i$ increases, the number of spaces printed decreases, which pushes the stars to the right.

  • Star Loop (k): This loop prints the stars; because it follows the space loop, the stars appear correctly right-aligned.

  • Newline: printf("\n") is essential to start a new line after both inner loops complete their execution for the current row.

Sample Output and Analysis

User Input:

  • The code is set for n = 5.

Program Output:

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

Output Analysis: In the first row (i=1), the program prints 4 spaces and 1 star. In the final row (i=5), it prints 0 spaces and 5 stars, successfully creating the right-aligned slope.

Common Mistakes and Troubleshooting

  • Space Calculation: If the triangle is not aligned, double-check that your space loop condition is j <= n - i.

  • Space Specifier: Ensure you use printf(" ") with a space character inside the quotes for the padding loop; otherwise, the stars will remain left-aligned.

Complexity Analysis

  • Time Complexity: O(n^2), as the nested structure iterates proportional to the square of the input size.

  • Space Complexity: O(1), as the logic uses a fixed amount of extra space.

Conclusion

By adding a space-handling loop before your star-printing logic, you have successfully created a right-aligned triangle. This is an essential step toward building complex structures like full pyramids and diamonds.



For all Pattern Programs list click here

…till the next post, bye-bye & take care

No comments:

Post a Comment