C program to print hollow mirrored rhombus star pattern

C program to print hollow mirrored rhombus star pattern

In this article, I will show you, How to write a C program to print mirrored hollow rhombus star pattern. Here, one thing is important to know that all sides of the rhombus must be the same.

Logic to write C program to print hollow mirrored rhombus star pattern:

It is very easy to print hollow mirrored rhombus star pattern in C, below I have mentioned a few steps to print a hollow  mirrored rhombus pattern in C:

  • You must know the side of the rhombus.
  • There should be three-loop, two inner and one outer.
  • First, inner loop print the space x times.
  • Second, inner loop print star for the first and last row or for the first and last column
  • After completing each iteration of the inner loops, the outer loop prints the new line.

See the, C program to print hollow mirrored rhombus star pattern:

 

#include <stdio.h>

int main()
{
    int x = 0,y = 0;
    unsigned int rows = 0;

    printf("Enter the number of rows = ");
    scanf("%u",&rows);

    for(x=1; x<=rows; ++x)
    {
        // Print spaces
        for(y=1; y<= x; ++y)
        {
            printf(" ");
        }
        for(y=1; y<=rows; ++y)
        {
            if((x==1) || (x==rows) || (y==1) || (y==rows))
            {
                //Print star
                printf("*");
            }
            else
            {
                //Print space
                printf(" ");
            }
        }
        // Print new line
        printf("\n");
    }
    return 0;
}

Output:

C program to print hollow mirrored rhombus

 

Code Analysis:

It asks the user to enter the side of the rhombus.

printf("Enter the number of rows = ");
scanf("%u",&rows);

The code contains the three for loop, two inner loop, and one outer loop.  The first inner loop prints space x times.

// Print spaces
for(y=1; y<= x; ++y)
{
    printf(" ");
}

 

The second inner loop print star at first row, column and last row, column using the printf function otherwise print space.

for(y=1; y<=rows; ++y)
{
    if((x==1) || (x==rows) || (y==1) || (y==rows))
    {
        //Print star
        printf("*");
    }
    else
    {
        //Print space
        printf(" ");
    }
}

 

The outer loop print the newline after each iteration of the inner loops.

Recommended Post: