C program to print 8 star pattern

Write a C program to print 8 star pattern series using loop. How to print 8 star pattern series using for loop in C program. Logic to print 8 star pattern series of N columns in C programming.

Example

Input

Input N: 5

Output

Required knowledge

Basic C programming, If else, For loop, Nested loop

Logic to print 8 star pattern

To simply things for beginners I have divided entire logic in three main sub tasks.

  • Print a hollow square star pattern with N columns and (N*2) - 1 rows.
  • Modify above hollow square pattern logic. Instead of star, print space at top and bottom corners and in the center intersection edge.
  • Finally modify hollow square logic to print star instead of space for Nth row.

Step by step descriptive logic to print 8 star pattern.

  1. Input number of columns to print from user. Store it in a variable say N.
  2. Iterate through (N*2)-1 rows. Run an outer loop with structure for(i=1; i<N*2; i++).
  3. Iterate through N columns. Run an inner loop with structure for(j=1; j<=N; j++).
  4. Inside inner loop first check conditions for corner and center intersection spaces. Print space for
    1st row and 1st or Nth column i.e. if(i==1 && (j==1 || j==N))
    Nth row and 1st or Nth column i.e. if(i==N && (j==1 || j==N))
    N*2-1 row and 1st or Nth column i.e. if(i==N*2-1 && (j==1 || j==N))
  5. Print stars for 1st row or 1st column i.e. if(i==1 || j==1) Nth row or Nth column i.e. if(i==N || j==N) N*2-1th row i.e. if(i==N*2-1).
  6. Otherwise print spaces if above conditions does not matches.

Program to print 8 star pattern

/**
 * C program to print 8 star pattern series
 */
#include <stdio.h>

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

    printf("Enter size: ");
    scanf("%d", &size);

    for(i=1; i<size*2; i++)
    {
        for(j=1; j<=size; j++)
        {
            // Condition for corner and center intersection space
            if((i==1 && (j==1 || j==size)) || 
               (i==size && (j==1 || j==size)) || 
               (i==size*2-1 && (j==1 || j==size)))
            {
                printf(" ");
            }
            else if(i==1 || i==size || i==(size*2)-1 || j==1 || j==size)
            {
                printf("*");
            }
            else
            {
                printf(" ");
            }
        }

        printf("\n");
    }

    return 0;
}

Output

Enter size: 6
 ****
*    *
*    *
*    *
*    *
 ****
*    *
*    *
*    *
*    *
 ****

Happy coding 😉

About Pankaj

Pankaj Prakash is the founder, editor and blogger at Codeforwin. He loves to learn new techs and write programming articles especially for beginners. He works at Vasudhaika Software Sols as a Software Design Engineer and manages Codeforwin. In short Pankaj is Web developer, Blogger, Learner, Tech and Music lover.

Follow on: Facebook | Twitter | Google | or

Comments and discussion
Have a doubt, write here. I will help my best.
Before commenting you must escape your source code before commenting. Paste your source code inside
<pre><code> ----Your Source Code---- </code></pre>