C Program to Print Pyramid Pattern
Last Updated :
15 Dec, 2024
In C, a pyramid pattern consists of numbers, stars, or alphabets arranged in a triangular shape. In this article, we will learn how to print different shapes of pyramid patterns using C program.
Following are the 6 common pyramid patterns:
Right Half Pyramid Pattern
Right half pyramid pattern looks like a right-angle triangle in which the hypotenuse is towards the right i.e. all the characters are aligned to the right.
Star Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop for printing rows
for (int i = 0; i < n; i++) {
// Inner loop for printing * in each rows
for (int j = 0; j <= i; j++)
printf("* ");
printf("\n");
}
return 0;
}
Number Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop for printing rows
for (int i = 0; i < n; i++) {
// Inner loop for printing * in each rows
for (int j = 0; j <= i; j++)
printf("%d ", j + 1);
printf("\n");
}
return 0;
}
Alphabet Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop for printing rows
for (int i = 0; i < n; i++) {
// Inner loop for printing * in each rows
for (int j = 0; j <= i; j++)
printf("%c ", j + 'A');
printf("\n");
}
return 0;
}
Output
* | 1 | A
* * | 1 2 | A B
* * * | 1 2 3 | A B C
* * * * | 1 2 3 4 | A B C D
* * * * * | 1 2 3 4 5 | A B C D E
Left Half Pyramid Pattern
Right half pyramid pattern looks like a right-angle triangle with all the characters are aligned to the left resulting in the hypotenuse facing towards the left.
Star Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop is for printing the rows
for (int i = 0; i < n; i++) {
// First inner loop for printing leading whitespaces
for (int j = 0; j < 2 * (n - i - 1); j++)
printf(" ");
// Second inner loop for printing * character
for (int k = 0; k <= i; k++)
printf("* ");
printf("\n");
}
return 0;
}
Number Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop is for printing the rows
for (int i = 0; i < n; i++) {
// First inner loop for printing leading whitespaces
for (int j = 0; j < 2 * (n - i - 1); j++)
printf(" ");
// Second inner loop for printing * character
for (int k = 0; k <= i; k++)
printf("%d ", k + 1);
printf("\n");
}
return 0;
}
Alphabet Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop is for printing the rows
for (int i = 0; i < n; i++) {
// First inner loop for printing leading whitespaces
for (int j = 0; j < 2 * (n - i - 1); j++)
printf(" ");
// Second inner loop for printing * character
for (int k = 0; k <= i; k++)
printf("%c ", k + 'A');
printf("\n");
}
return 0;
}
Output
* | 1 | A
* * | 1 2 | A B
* * * | 1 2 3 | A B C
* * * * | 1 2 3 4 | A B C D
* * * * * | 1 2 3 4 5 | A B C D EFull Pyramid Pattern
A full pyramid pattern is a pattern of star, numbers or alphabets that looks like an equilateral triangle.
Star Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop to print all rows
for (int i = 0; i < n; i++) {
// First inner loop to print leading white spaces
for (int j = 0; j < 2 * (n - i - 1); j++)
printf(" ");
// Second inner loop to print star * character
for (int k = 0; k < 2 * i + 1; k++)
printf("* ");
printf("\n");
}
return 0;
}
Number Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop to print all rows
for (int i = 0; i < n; i++) {
// First inner loop to print leading white spaces
for (int j = 0; j < 2 * (n - i - 1); j++)
printf(" ");
// Second inner loop to print star * character
for (int k = 0; k < 2 * i + 1; k++)
printf("%d ", k + 1);
printf("\n");
}
return 0;
}
Alphabet Pattern
#include <stdio.h>
int main() {
int n = 5;
// Outer loop to print all rows
for (int i = 0; i < n; i++) {
// First inner loop to print leading white spaces
for (int j = 0; j < 2 * (n - i - 1); j++)
printf(" ");
// Second inner loop to print star * character
for (int k = 0; k < 2 * i + 1; k++)
printf("%c ", k + 'A');
printf("\n");
}
return 0;
}
Output
* | 1 | A
* * * | 1 2 3 | A B C
* * * * * | 1 2 3 4 5 | A B C D E
* * * * * * * | 1 2 3 4 5 6 7 | A B C D E F G
* * * * * * * * * | 1 2 3 4 5 6 7 8 9 | A B C D E F G H IInverted Full Pyramid Pattern
Inverted full pyramid pattern is triangular pattern obtained by rotating the full pyramid pattern by 180°.
Star Pattern
#include <stdio.h>
int main() {
int n = 5;
// First loop for printing all rows
for (int i = 0; i < n; i++) {
// First inner loop for printing leading white
// spaces
for (int j = 0; j < 2 * i; j++) {
printf(" ");
}
// Second inner loop for printing stars *
for (int k = 0; k < 2 * (n - i) - 1; k++) {
printf("* ");
}
printf("\n");
}
}
Number Pattern
#include <stdio.h>
int main() {
int n = 5;
// First loop for printing all rows
for (int i = 0; i < n; i++) {
// First inner loop for printing leading white
// spaces
for (int j = 0; j < 2 * i; j++)
printf(" ");
// Second inner loop for printing stars *
for (int k = 0; k < 2 * (n - i) - 1; k++)
printf("%d ", k + 1);
printf("\n");
}
}
Alphabet Pattern
#include <stdio.h>
int main() {
int n = 5;
// First loop for printing all rows
for (int i = 0; i < n; i++) {
// First inner loop for printing leading white
// spaces
for (int j = 0; j < 2 * i; j++)
printf(" ");
// Second inner loop for printing stars *
for (int k = 0; k < 2 * (n - i) - 1; k++)
printf("%c ", k + 'A');
printf("\n");
}
}
Output
* * * * * * * * * | 1 2 3 4 5 6 7 8 9 | A B C D E F G H I
* * * * * * * | 1 2 3 4 5 6 7 | A B C D E F G
* * * * * | 1 2 3 4 5 | A B C D E
* * * | 1 2 3 | A B C
* | 1 | ADiamond Pattern
The Diamond Pattern is triangular pattern that can be obtained by joining the full pyramid and inverted full pyramid pattern by their bases.
Star Pattern
#include <stdio.h>
int main() {
int n = 5;
// First outer loop to iterator through each row
for (int i = 0; i < 2 * n - 1; i++) {
// Assigning values to the comparator according to
// the row number
int comp;
if (i < n) comp = 2 * (n - i) - 1;
else comp = 2 * (i - n + 1) + 1;
// First inner loop to print leading whitespaces
for (int j = 0; j < comp; j++)
printf(" ");
// Second inner loop to print stars *
for (int k = 0; k < 2 * n - comp; k++) {
printf("* ");
}
printf("\n");
}
return 0;
}
Number Pattern
#include <stdio.h>
int main() {
int n = 5;
// First outer loop to iterator through each row
for (int i = 0; i < 2 * n - 1; i++) {
// Assigning values to the comparator according to
// the row number
int comp;
if (i < n) comp = 2 * (n - i) - 1;
else comp = 2 * (i - n + 1) + 1;
// First inner loop to print leading whitespaces
for (int j = 0; j < comp; j++)
printf(" ");
// Second inner loop to print stars *
for (int k = 0; k < 2 * n - comp; k++) {
printf("%d ", k + 1);
}
printf("\n");
}
return 0;
}
Alphabet Pattern
#include <stdio.h>
int main() {
int n = 5;
// First outer loop to iterator through each row
for (int i = 0; i < 2 * n - 1; i++) {
// Assigning values to the comparator according to
// the row number
int comp;
if (i < n) comp = 2 * (n - i) - 1;
else comp = 2 * (i - n + 1) + 1;
// First inner loop to print leading whitespaces
for (int j = 0; j < comp; j++)
printf(" ");
// Second inner loop to print stars *
for (int k = 0; k < 2 * n - comp; k++) {
printf("%c ", k + 'A');
}
printf("\n");
}
return 0;
}
Output
* | 1 | A
* * * | 1 2 3 | A B C
* * * * * | 1 2 3 4 5 | A B C D E
* * * * * * * | 1 2 3 4 5 6 7 | A B C D E F G
* * * * * * * * * | 1 2 3 4 5 6 7 8 9 | A B C D E F G H I
* * * * * * * | 1 2 3 4 5 6 7 | A B C D E F G
* * * * * | 1 2 3 4 5 | A B C D E
* * * | 1 2 3 | A B C
* | 1 | AHourglass Pattern
The Diamond Pattern is triangular pattern that can be obtained by joining the full pyramid and inverted full pyramid pattern by their tip.
Star Pattern
#include <stdio.h>
int main() {
int n = 5;
// First outer loop to iterator through each row
for (int i = 0; i < 2 * n - 1; i++) {
// Assigning values to the comparator according to
// the row number
int comp;
if (i < n) comp = 2 * (n - i) - 1;
else comp = 2 * (i - n + 1) + 1;
// First inner loop to print leading whitespaces
for (int j = 0; j < 2 * n - comp - 1; j++)
printf(" ");
// Second inner loop to print stars *
for (int k = 0; k < comp; k++) {
printf("* ");
}
printf("\n");
}
return 0;
}
Number Pattern
#include <stdio.h>
int main() {
int n = 5;
// First outer loop to iterator through each row
for (int i = 0; i < 2 * n - 1; i++) {
// Assigning values to the comparator according to
// the row number
int comp;
if (i < n) comp = 2 * (n - i) - 1;
else comp = 2 * (i - n + 1) + 1;
// First inner loop to print leading whitespaces
for (int j = 0; j < 2 * n - comp - 1; j++)
printf(" ");
// Second inner loop to print stars *
for (int k = 0; k < comp; k++)
printf("%d ", k + 1);
printf("\n");
}
return 0;
}
Alphabet Pattern
#include <stdio.h>
int main() {
int n = 5;
// First outer loop to iterator through each row
for (int i = 0; i < 2 * n - 1; i++) {
// Assigning values to the comparator according to
// the row number
int comp;
if (i < n) comp = 2 * (n - i) - 1;
else comp = 2 * (i - n + 1) + 1;
// First inner loop to print leading whitespaces
for (int j = 0; j < 2 * n - comp - 1; j++)
printf(" ");
// Second inner loop to print stars *
for (int k = 0; k < comp; k++)
printf("%c ", k + 'A');
printf("\n");
}
return 0;
}
Output
* * * * * * * * * | 1 2 3 4 5 6 7 8 9 | A B C D E F G H I
* * * * * * * | 1 2 3 4 5 6 7 | A B C D E F G
* * * * * | 1 2 3 4 5 | A B C D E
* * * | 1 2 3 | A B C
* | 1 | A
* * * | 1 2 3 | A B C
* * * * * | 1 2 3 4 5 | A B C D E
* * * * * * * | 1 2 3 4 5 6 7 | A B C D E F G
* * * * * * * * * | 1 2 3 4 5 6 7 8 9 | A B C D E F G H IOther Types of Pyramid Patterns in C
There can be a lot of variations of pyramid patterns that can be obtained by sight change in the pattern. Following are some common ones:
Explore
C Basics
Arrays & Strings
Pointers and Structures
Memory Management
File & Error Handling
Advanced Concepts