Program to print hollow pyramid and diamond pattern in C++



In this article, we implement a C++ program to print a hollow pyramid and diamond pattern. We can create solid Pyramid patterns easily using a loop. To make it hollow, we have to add a few logics.

Hollow Pyramid

A hollow pyramid is a pattern where a pyramid shape is formed, but only the outer edges (the borders) are filled with characters, while the interior is left empty.

pyramid

Let's explain how we can create hollow pyramid ?

  • The first line prints only one star (*).
  • The last line (i.e., the nth line) prints n stars in a row, forming the base of the pyramid.
  • For all the lines in between (2nd to n-1):

    • The line starts with one star.
    • Then, it has some spaces in the middle.
    • Ends with another star.

C++ Program to Print Hollow Pyramid Pattern

Following is the C++ program to construct a hollow pyramid:

#include <iostream>
using namespace std;
int main() {
   int n = 5;
   int i, j;
   for (i = 1; i <= n; i++) {
      for (j = 1; j <= (n - i); j++) {
         //print the blank spaces before star
         cout << " ";
      }
      if (i == 1 || i == n) {
         //for the first and last line, print the stars continuously
         for (j = 1; j <= i; j++) {
            cout << "* ";
         }
      } else {
         cout << "*";
         //in each line star at start and end position
         for (j = 1; j <= 2 * i - 3; j++) {
            //print space to make hollow
            cout << " ";
         }
         cout << "*";
      }
      cout << endl;
   }
}

Following is the hollow pyramid ?

    *
   * *
  *   *
 *     *
* * * * *

Hollow Diamond

A hollow diamond is a pattern that creates a diamond shape, but only the edge is filled with character, leaving the interior empty.

diamond

The diamond pattern is made up with two symmetrical halves:

  • The upper half (top to middle)
  • The lower half (middle to bottom)

C++ Program to Print Hollow Diamond Pattern

The following is a C++ example to construct a hollow diamond ?

#include <iostream>

using namespace std;
int main() {
   int n = 7;
   int i, j, mid;
   if (n % 2 == 1) {
      //when n is odd, increase it by 1 to make it even
      n++;
   }
   mid = (n / 2);
   for (i = 1; i <= mid; i++) {
      for (j = 1; j <= (mid - i); j++) {
         //print the blank spaces before star
         cout << " ";
      }
      if (i == 1) {
         cout << "*";
      } else {
         cout << "*";
         //in each line star at start and end position
         for (j = 1; j <= 2 * i - 3; j++) {
            //print space to make hollow
            cout << " ";
         }
         cout << "*";
      }
      cout << endl;
   }
   for (i = mid + 1; i < n; i++) {
      for (j = 1; j <= i - mid; j++) {
         //print the blank spaces before star
         cout << " ";
      }
      if (i == n - 1) {
         cout << "*";
      } else {
         cout << "*";
         //in each line star at start and end position
         for (j = 1; j <= 2 * (n - i) - 3; j++) {
            //print space to make hollow
            cout << " ";
         }
         cout << "*";
      }
      cout << endl;
   }
}

Following is the hollow diamond -

   *
  * *
 *   *
*     *
 *   *
  * *
   *
Updated on: 2025-05-15T15:41:35+05:30

7K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements