C Program to Print Hourglass Star Pattern

Introduction

An hourglass star pattern consists of two parts: an upper inverted triangle and a lower triangle, which together resemble an hourglass shape. This exercise helps in understanding how to use loops and conditional logic to print symmetrical patterns.

Problem Statement

Create a C program that:

  • Accepts the number of rows for the hourglass pattern.
  • Prints an hourglass-shaped star pattern.

Example:

  • Input: rows = 5
  • Output:
    *********
     *******
      *****
       ***
        *
       ***
      *****
     *******
    *********
    

Solution Steps

  1. Input the Number of Rows: The size determines the height of the hourglass pattern.
  2. Use Nested Loops: The outer loops handle the rows, and the inner loops handle printing the stars and spaces for both the upper (inverted) and lower triangles.
  3. Display the Hourglass Pattern: Print stars in decreasing order for the upper part and increasing order for the lower part.

C Program

#include <stdio.h>

int main() {
    int i, j, rows;

    // Step 1: Accept the number of rows for the hourglass pattern
    printf("Enter the number of rows: ");
    scanf("%d", &rows);

    // Step 2: Print the upper part of the hourglass (inverted triangle)
    for (i = 0; i < rows; i++) {
        // Print spaces for alignment
        for (j = 0; j < i; j++) {
            printf(" ");
        }
        // Print stars for the inverted triangle
        for (j = 0; j < (2 * (rows - i) - 1); j++) {
            printf("*");
        }
        printf("\n");
    }

    // Step 3: Print the lower part of the hourglass (regular triangle)
    for (i = 1; i <= rows; i++) {
        // Print spaces for alignment
        for (j = rows - i; j > 0; j--) {
            printf(" ");
        }
        // Print stars for the regular triangle
        for (j = 0; j < (2 * i - 1); j++) {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

Explanation

Step 1: Input Number of Rows

  • The program begins by asking the user to input the number of rows, which determines the size of the hourglass pattern.

Step 2: Print the Upper Part (Inverted Triangle)

  • The outer loop controls the number of rows for the upper (inverted) part of the hourglass.
  • An inner loop prints spaces to align the stars properly, and another inner loop prints stars (*) in decreasing order, forming the inverted triangle.

Step 3: Print the Lower Part (Regular Triangle)

  • The second outer loop handles the rows for the lower part (regular triangle) of the hourglass.
  • The inner loops print the necessary spaces and stars in increasing order to form the triangle.

Output Example

For rows = 5, the output will be:

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

For rows = 6, the output will be:

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

Conclusion

This C program prints an hourglass star pattern by using nested loops to handle the inverted and regular triangles. The pattern is formed by aligning stars and spaces in both increasing and decreasing order, creating the hourglass shape. This exercise is useful for learning loop control and conditional printing in C programming.

Comments