Diamond Pattern
Diamond Pattern
How to print
diamond star pattern structure in C program. Logic to print diamond star pattern
series in C programming.
Example
Input
Input rows: 5
Output
*
***
*****
*******
*********
*******
*****
***
*
Required knowledge
Basic C programming, If else, For loop, Nested loop
The given pattern is a combination of simple pyramid star pattern and inverted
pyramid star pattern. It consist of N*2-1 rows (for this case N=5). Each row
contain spaces and stars in printed in increasing and decreasing order.
Stars are printed in increasing order till Nth row. After Nth row stars are printed
in decreasing order.
Spaces are printed in decreasing order till Nth row. After Nth row spaces are
printed in increasing order. Point your mouse cursor over the pattern to count
total spaces.
Input number of rows to print from user (in real number of rows/2). Store it in a
variable say rows.
Declare two variables to keep track of total columns to print each row, say stars=1
and spaces=N-1.
To iterate through rows, run an outer loop from 1 to rows*2-1. The loop structure
should look like for(i=1; i<rows*2; i++).
To print spaces, run an inner loop from 1 to spaces. The loop structure should look
like for(j=1; j<=spaces; j++). Inside this loop print single space.
To print stars, run another inner loop from 1 to stars*2-1. The loop structure
should look like for(j=1; j<=stars; j++). Inside this loop print star.
After printing all columns of a row, move to next line i.e. print new line.
Check if(i < rows) then increment stars and decrement spaces. Otherwise increment
spaces and decrement stars.
Program to print diamond star pattern
/**
* C program to print diamond star pattern
*/
#include <stdio.h>
int main()
{
int i, j, rows;
int stars, spaces;
stars = 1;
spaces = rows - 1;
/* Print stars */
for(j=1; j<stars*2; j++)
printf("*");
if(i<rows)
{
spaces--;
stars++;
}
else
{
spaces++;
stars--;
}
}
return 0;
}
Output
Enter N: 5
*
***
*****
*******
*********
*******
*****
***
*