Wednesday, July 22, 2026

Printing a Inverted Alphabet Triangle (Half Pyramid)| Alphabet Patterns in C

Having mastered the standard half pyramid, it is time to invert the logic. Printing an inverted alphabet triangle is an excellent way to practice manipulating loop boundaries, teaching you how to decrease the number of characters printed in each successive row.

What You Will Learn

In this tutorial, we will create a C program that prints an inverted half pyramid of letters. You will learn how to initialize your loops to count downwards, allowing the pyramid to "shrink" row by row.

Prerequisites:

  • Understanding of nested for loops.

  • Knowledge of printing patterns using ASCII character logic ('A' + j).

Final Output:

If we create an inverted triangle with 5 rows, the output will look like this:


ABCDE
ABCD
ABC
AB
A

Deconstructing the Pattern: The Logic

1. The Visual Representation

In this pattern, the number of characters printed decreases as we move down the rows:

  • Row 0: 'A' 'B' 'C' 'D' 'E' (5 characters)

  • Row 1: 'A' 'B' 'C' 'D' (4 characters)

  • Row 2: 'A' 'B' 'C' (3 characters)

  • Row 3: 'A' 'B' (2 characters)

  • Row 4: 'A' (1 character)

2. Problem Statement

The objective is to print a decreasing sequence of letters. We need the inner loop's boundary to decrease as the outer loop's index increases.

3. Pattern Analysis & Logic

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

  • Inner Loop: Manages the columns. To achieve the inverted effect, we want the inner loop to run from $j = 0$ up to $n - i - 1$.

  • Character Logic: We continue to print 'A' + j to generate the alphabetical sequence in every row.

The Code Implementation


#include <stdio.h>

int main() {
    int n = 5; // Total number of rows

    // Outer loop for rows
    for (int i = 0; i < n; i++) {
        
        // Inner loop runs up to (n - i - 1) to decrease character count
        for (int j = 0; j < n - i; j++) {
            printf("%c", 'A' + j); 
        }
        
        // Move to the next line after finishing the row
        printf("\n"); 
    }

    return 0;
}

Explanation:

  • for (int i = 0; i < n; i++): The outer loop still tracks the current row index.

  • for (int j = 0; j < n - i; j++): This is the crucial logic change. As i increases, the limit n - i decreases, printing one fewer character each time the outer loop runs.

  • printf("%c", 'A' + j): Prints the character sequence corresponding to the current column index j.

Sample Output and Analysis

User Input:

  • The code is configured for n = 5.

Program Output:


ABCDE
ABCD
ABC
AB
A

Output Analysis: In the first iteration (i=0), the inner loop runs 5 times (0 to 4). In the final iteration (i=4), the inner loop runs only once (5 - 4 = 1), creating the clean inverted triangle effect.

Common Mistakes and Troubleshooting

  • Off-by-One Errors: Ensure your inner loop condition is j < n - i rather than j <= n - i to avoid printing an extra character per row.

  • Loop Reset: Remember that the alphabet sequence always starts at 'A' because the inner loop variable j always resets to 0 at the start of each inner loop cycle.

Complexity Analysis

  • Time Complexity: O(n^2), similar to the standard triangle, as the nested structure still performs approximately \frac{n(n+1)}{2} operations.

  • Space Complexity: O(1), as the logic uses a fixed amount of memory regardless of the input size.

Conclusion

By adjusting the boundary of your inner loop to account for the outer loop index, you have successfully reversed the triangle. This technique is essential for building more complex, symmetric shapes like diamonds and hourglasses.



For all Pattern Programs list click here

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

No comments:

Post a Comment