Here I am sharing the C and C++ program to print the pattern shown in below image. This pattern is printed using stars (*). It has two parts, the lower half is just opposite of upper half. Comment below if you are facing any problem in understanding the code.
C Program
#include<stdio.h>
int main()
{
int i,j,k,m,n;
printf("Enter size(Ex:5):");
scanf("%d",&n);
for(i=1,m=-1;i<=n;++i,m+=2)
{
if(i==1)
for(j=1;j<n*2;++j)
printf("*");
else
{
for(k=i;k<=n;++k)
printf("*");
for(k=1;k<=m;++k)
printf(" ");
for(k=i;k<=n;++k)
printf("*");
}
printf("n");
}
for(i=1,m=n*2-3;i<=n;++i,m-=2)
{
if(i==n)
for(j=1;j<n*2;++j)
printf("*");
else
{
for(k=1;k<=i;++k)
printf("*");
for(k=1;k<=m;++k)
printf(" ");
for(k=1;k<=i;++k)
printf("*");
}
printf("n");
}
return 0;
}
C++ Program
#include<iostream>
using namespace std;
int main()
{
int i,j,k,m,n;
cout<<"Enter size(Ex:5):";
cin>>n;
for(i=1,m=-1;i<=n;++i,m+=2)
{
if(i==1)
for(j=1;j<n*2;++j)
cout<<"*";
else
{
for(k=i;k<=n;++k)
cout<<"*";
for(k=1;k<=m;++k)
cout<<" ";
for(k=i;k<=n;++k)
cout<<"*";
}
cout<<"n";
}
for(i=1,m=n*2-3;i<=n;++i,m-=2)
{
if(i==n)
for(j=1;j<n*2;++j)
cout<<"*";
else
{
for(k=1;k<=i;++k)
cout<<"*";
for(k=1;k<=m;++k)
cout<<" ";
for(k=1;k<=i;++k)
cout<<"*";
}
cout<<"n";
}
return 0;
}

