Hollow Diamond Pattern in C

There are many pattern programs are written by programmers for practice purposes. The diamond pattern programs are one of them. Here we will write a hollow diamond pattern in C.

Hollow Diamond Star Pattern in C

``````Input: 5

Output:
*
* *
*   *
*     *
*       *
*     *
*   *
* *
*``````

C program for the above pattern,

``````#include<stdio.h>
int main()
{
int n;

printf("Enter number of rows: ");
scanf("%d",&n);

for(int i=1; i<=n; i++)
{
for(int j=i; j<=n; j++)
{
printf(" ");
}
for(int k=1; k<=2*i-1; k++)
{
if(k==1 || k==(2*i-1)) printf("*");
else printf(" ");
}
printf("\n");
}

for(int i=n-1; i>=1; i--)
{
for(int j=n; j>=i; j--)
{
printf(" ");
}
for(int k=1; k<=2*i-1; k++)
{
if(k==1 || k==2*i-1) printf("*");
else printf(" ");
}
printf("\n");
}

return 0;
}``````

Output:-

``````Enter number of rows: 7

*
* *
*   *
*     *
*       *
*         *
*           *
*         *
*       *
*     *
*   *
* *
*``````

In this pattern first and the last row contain 1 star and remaining every row contains exactly 2 stars.

We can display any characters instead of stars, for this purpose just replace the * with that character. But in this case, all characters must be the same.

Hollow Diamond Number Pattern

``````Input: 5

Output:

1
2 2
3   3
4     4
5       5
4     4
3   3
2 2
1``````

This hollow diamond pattern contains numbers instead of stars. So, only some parts of the code will change and others will remain the same.

The pattern starts with 1 and displays up to 5. The first and last row contains only 1 and the remaining rows contains exactly 2 same numbers. From 1st to 5th row the size of pattern increases and from 6th to 9th row the size of pattern decreased.

``````#include<stdio.h>
int main()
{
int n, a=1;

printf("Enter number of rows: ");
scanf("%d", &n);

for(int i=1; i<=n; i++)
{
for(int j=i; j<=n; j++)
{
printf(" ");
}
for(int k=1; k<=2*i-1; k++)
{
if(k==1 || k==2*i-1) printf("%d",a);
else printf(" ");
}
a++;
printf("\n");
}

a=n-1;

for(int i=n-1; i>=1; i--)
{
for(int j=n; j>=i; j--)
{
printf(" ");
}
for(int k=1; k<=2*i-1; k++)
{
if(k==1 || k==2*i-1) printf("%d",a);
else printf(" ");
}
a--;
printf("\n");
}

return 0;
}``````

Output:-

``````Enter number of rows: 3
1
2 2
3   3
2 2
1``````
``````Enter number of rows: 5
1
2 2
3   3
4     4
5       5
4     4
3   3
2 2
1``````

If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or do you find anything incorrect? Let us know in the comments. Thank you!