*****
****
***
**
*
**
***
****
*****
/**
* C program to print right arrow star pattern
*/
#include <stdio.h>
int main()
{
int i, j, n;
// Input number of rows from user
printf("Enter value of n : ");
scanf("%d", &n);
// Print the upper part of the arrow
for(i=1; i<n; i++)
{
// Print trailing (2*rownumber-2) spaces
for(j=1; j<=(2*i-2); j++)
{
printf(" ");
}
// Print inverted right triangle star pattern
for(j=i; j<=n; j++)
{
printf("*");
}
printf("\n");
}
// Print lower part of the arrow
for(i=1; i<=n; i++)
{
// Print trailing (2*n - 2*rownumber) spaces
for(j=1; j<=(2*n - 2*i); j++)
{
printf(" ");
}
// Print simple right triangle star pattern
for(j=1; j<=i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
Enter value of n : 5
*****
****
***
**
*
**
***
****
*****
Basic C programming, For loop, Nested loop
Read more - Program to print left arrow star pattern.
This pattern is a combination of two patterns hence, let's first divide it into two parts.
*****
****
***
**
*
**
***
****
*****
If you have noticed total number of spaces in upper part is 2*rownumber - 2 per row and bottom part contains total 2*n - 2*rownumber spaces per row (where n is the total number of rows). If you ignore leading spaces, then the upper part star pattern is similar to inverted right triangle star pattern and bottom part to simple right triangle star pattern which I already explained how to print.
First understand the algorithm carefully. Then study the program line-by-line and compare it with the output. Finally, review the explanation section to strengthen your logic and programming understanding.
Rewrite the program without looking at the code. Modify values, conditions or logic and run it again. This helps improve confidence and strengthens coding skills much faster.