C Program to Print Sandglass Star Pattern

Write a C program to print a sandglass star pattern using a for loop, while loop, do while loop, and functions with an example. 

#include <stdio.h>

int main(void)
{
    int i, j, k, rows;
    
    printf("Enter Sandglass Star Pattern Rows = ");
    scanf("%d",&rows);
    
    for (i = 1; i <= rows; i++)
    {
        for (j = 1; j < i; j++)
        {
            printf(" ");
        }
        for (k = i; k <= rows; k++)
        {
            printf("* ");
        }
        printf("\n");
    }
    
    for (i = rows - 1; i >= 1; i--)
    {
        for (j = 1; j < i; j++)
        {
            printf(" ");
        }
        for (k = i; k <= rows; k++)
        {
            printf("* ");
        }
        printf("\n");
    }
}
C Program to Print Sandglass Star Pattern

This C example uses a while loop to display the stars in a sandglass pattern or structure. Here, we replaced the for loop with a while loop.

#include <stdio.h>

void loopLogic(int rows, int i)
{
    int j = 1;
    while (j < i )
    {
        printf(" ");
        j++;
    }
    int k = i;
    while (k <= rows )
    {
        printf("* ");
        k++;
    }
    printf("\n");
}

int main(void)  {
    int i, j, k, rows;
    
    printf("Enter Sandglass Star Pattern Rows = ");
    scanf("%d",&rows);
    
    i = 1;
    while (i <= rows)
    {
        loopLogic(rows, i);
        i++;
    }
    i = rows - 1;
    while (i >= 1)
    {
        loopLogic(rows, i);
        i--;
    }
}
Enter Sandglass Star Pattern Rows = 7
* * * * * * * 
 * * * * * * 
  * * * * * 
   * * * * 
    * * * 
     * * 
      * 
     * * 
    * * * 
   * * * * 
  * * * * * 
 * * * * * * 
* * * * * * * 

C program to print sandglass star pattern using do while loop

Please refer to the Do while loop article.

#include <stdio.h>

void loopLogic(int rows, int i)
{
    int j = 1;
    do
    {
        printf(" ");
        j++;
    } while (j < i );
    int k = i;
    do
    {
        printf("* ");
        k++;
    } while (k <= rows );
    printf("\n");
}

int main(void)  {
    int i, j, k, rows;
    
    printf("Enter Sandglass Star Pattern Rows = ");
    scanf("%d",&rows);
    
    i = 1;
    do
    {
        loopLogic(rows, i);
        i++;
    } while (i <= rows);
    i = rows - 1;
    do
    {
        loopLogic(rows, i);
        i--;
    } while (i >= 1);
}
Enter Sandglass Star Pattern Rows = 11
 * * * * * * * * * * * 
 * * * * * * * * * * 
  * * * * * * * * * 
   * * * * * * * * 
    * * * * * * * 
     * * * * * * 
      * * * * * 
       * * * * 
        * * * 
         * * 
          * 
         * * 
        * * * 
       * * * * 
      * * * * * 
     * * * * * * 
    * * * * * * * 
   * * * * * * * * 
  * * * * * * * * * 
 * * * * * * * * * * 
 * * * * * * * * * * * 

This example uses the functions and accepts the user-given symbol as an input and prints a given symbol’s sandglass pattern.

#include <stdio.h>

void loopLogic(int rows, int i, char ch)
{
    for (int j = 1; j < i; j++ )
    {
        printf(" ");
    }
   for (int k = i; k <= rows; k++ )
    {
        printf("%c ", ch);
    }
    printf("\n");
}

int main(void)  {
    int i, rows;
    char ch;
    
    printf("Enter Character = ");
    scanf("%c", &ch);
    
    printf("Enter Sandglass Star Pattern Rows = ");
    scanf("%d",&rows);
    
    for (i = 1; i <= rows; i++)
    {
        loopLogic(rows, i, ch);
    }
    
    for (i = rows - 1; i >= 1; i--)
    {
        loopLogic(rows, i, ch);
    }
}
Enter Character = $
Enter Sandglass Star Pattern Rows = 9
$ $ $ $ $ $ $ $ $ 
 $ $ $ $ $ $ $ $ 
  $ $ $ $ $ $ $ 
   $ $ $ $ $ $ 
    $ $ $ $ $ 
     $ $ $ $ 
      $ $ $ 
       $ $ 
        $ 
       $ $ 
      $ $ $ 
     $ $ $ $ 
    $ $ $ $ $ 
   $ $ $ $ $ $ 
  $ $ $ $ $ $ $ 
 $ $ $ $ $ $ $ $ 
$ $ $ $ $ $ $ $ $