- C++ Programming Examples
- C++ Programming Examples
- C++: Hello World
- C++: Get Input
- C++: Print Integer
- C++: Add two numbers
- C++: Add, Sub, Multiply, Div
- C++: Add Digits
- C++: Find Average and Percentage
- C++: Find Arithmetic Mean
- C++: Sum of n Natural Numbers
- C++: Sum of n Numbers
- C++: Square's Area and Perimeter
- C++: Rectangle's Area and Perimeter
- C++: Triangle's Area and Perimeter
- C++: Area and Circumference
- C++: Find Simple Interest
- C++: Fahrenheit to Celsius
- C++: Celsius to Fahrenheit
- C++: Print Prime Numbers
- C++: Reverse a Number
- C++: Swap Two Numbers
- C++: Print Multiplication Table
- C++: Find Factorial of a Number
- C++: Find Factors of a Number
- C++: Find HCF and LCM
- C++: Create a Calculator
- C++: Count Digits in a Number
- C++: First and Last Digit Sum
- C++: Product of Number Digits
- C++: Sum of Squares of Digits
- C++: Interchange Digits of Number
- C++ if-else Programs
- C++: Check Even or Odd
- C++: Check Prime or Not
- C++: Check Alphabet or Not
- C++: Check Vowel or Not
- C++: Check Leap Year or Not
- C++: Check Reverse equals Original
- C++: Check Perfect Number
- C++: Check Palindrome or Not
- C++: Check Armstrong or Not
- C++: Divisibility Test
- C++: Find Labor Wage
- C++: Find Discounted Price
- C++: Find Shipping Charge
- C++: Find Telephone Bills
- C++: Calculate Student Grade
- C++: Largest of Two Numbers
- C++: Largest of Three Numbers
- C++ Number Conversion
- C++: Decimal to Binary
- C++: Decimal to Octal
- C++: Decimal to Hexadecimal
- C++: Binary to Decimal
- C++: Binary to Octal
- C++: Binary to Hexadecimal
- C++: Octal to Decimal
- C++: Octal to Binary
- C++: Octal to Hexadecimal
- C++: Hexadecimal to Decimal
- C++: Hexadecimal to Binary
- C++: Hexadecimal to Octal
- C++ Pattern Programs
- C++: Pattern Programs
- C++: Print Diamond Pattern
- C++: Print Floyd's Triangle
- C++: Print Pascal's Triangle
- C++ Array Programs
- C++: 1D Array Program
- C++: Linear Search
- C++: Binary Search
- C++: Largest Element in an Array
- C++: Smallest Element in an Array
- C++: Find Second Largest Element
- C++: Find Second Smallest Element
- C++: Sum of All Elements
- C++: Multiply All Elements
- C++: Element in Even Position
- C++: Element in Odd Position
- C++: Print Even Numbers in Array
- C++: Print Odd Numbers in Array
- C++: Count Even or Odd Numbers
- C++: Sum of Even or Odd Numbers
- C++: Count Positive, Negative, Zero
- C++: Reverse an Array
- C++: Insert an Element
- C++: Delete an Element
- C++: Merge two Arrays
- C++: Bubble Sort
- C++: Selection Sort
- C++: Insertion Sort
- C++: Common Elements
- C++: 2D Array Programs
- C++: Add Two Matrices
- C++: Subtract Two Matrices
- C++: Transpose Matrix
- C++: Multiply Two Matrices
- C++: 3D Array Programs
- C++ String Programs
- C++: Print String
- C++: Find String Length
- C++: Compare Two Strings
- C++: Copy String
- C++: String Concatenation
- C++: Reverse a String
- C++: Delete Vowels from a String
- C++: Delete a Word from a String
- C++: Count Characters in a String
- C++: Count Words in a String
- C++: Frequency of Words
- C++: Remove Spaces from Strings
- C++: Sort a String
- C++: Uppercase to Lowercase
- C++: Lowercase to Uppercase
- C++: Swap Two Strings
- C++: Check the Anagram or Not
- C++: Capitalize All Words in a String
- C++: Get Numbers from a String
- C++ File Programs
- C++: Read a File
- C++: Write Content to a File
- C++: Append Data to a File
- C++: Read and Display File
- C++: Copy a File
- C++: Merge Two Files
- Count Characters in a File
- C++: Capitalize Every Word
- C++: List Files in Directory
- C++: Delete a File
- C++: Encrypt and Decrypt a File
- C++ Misc Programs
- C++: Print ASCII Value
- C++: Add Binary Numbers
- C++: Generate Random Numbers
- C++: Print a Smiling Face
- C++: Days into Years and Months
- C++: Add Two Numbers using Pointer
- C++: Print Fibonacci Series
- C++: Generate Armstrong Numbers
- C++: Find nCr and nPr
- C++: Get IP Address
- C++: Print Date and Time
- C++: Shutdown and Restart Computer
- C++ Programming Tutorial
- C++ Tutorial
C++ program to print a diamond pattern
In this article, you will learn and get code to print a diamond pattern in C++. Here is the list of programs on the printing of diamond patterns available in this article:
- Print a diamond pattern of stars
- Print a diamond pattern of numbers
- Print a diamond pattern of alphabet characters
In C++, print a diamond pattern of stars
To print a diamond pattern of stars in C++ programming, you have to ask the user to enter the number of rows. Now, using the row size, print the diamond pattern as shown in the program given below:
If the user enters 6 as the row size of a diamond, then its upper-triangular part expands up to 6 lines, whereas its lower-triangular part expands up to 5 (one less than the row size) lines.
The question is, "Write a program in C++ to print a diamond pattern of stars." Here is its answer:
#include<iostream> using namespace std; int main() { int i, j, rowNum, space; cout<<"Enter the Number of Rows: "; cin>>rowNum; space = rowNum-1; for(i=1; i<=rowNum; i++) { for(j=1; j<=space; j++) cout<<" "; space--; for(j=1; j<=(2*i-1); j++) cout<<"*"; cout<<endl; } space = 1; for(i=1; i<=(rowNum-1); i++) { for(j=1; j<=space; j++) cout<<" "; space++; for(j=1; j<=(2*(rowNum-i)-1); j++) cout<<"*"; cout<<endl; } cout<<endl; return 0; }
This program was built and runs under the Code::BlocksĀ IDE. Here is its sample run:
Now supply the input, say 6 as the number of rows, and press the ENTER key to print the diamond pattern as shown in the snapshot given below:
Note that the row size in this case is the upper triangular part of the diamond pattern, not the actual row size.
There are three for loops used to create both the upper and lower triangles of a diamond. The first three for loops are created in a way that:
- The first corresponds to the rows.
- The second corresponds to spaces.
- The third corresponds to columns (the printing of stars).
And the three for loops for lower triangular part of the diamond pattern also works in a similar way.
The dry run of the following block of code:
space = rowNum-1; for(i=1; i<=rowNum; i++) { for(j=1; j<=space; j++) cout<<" "; space--; for(j=1; j<=(2*i-1); j++) cout<<"*"; cout<<endl; }
that prints the upper triangular part of a diamond, goes like:
- When a user enters a row size of 6, it is saved in rowNum.
- And rowNum-1, 6-1, or 5 is saved in space.
- Now, program flow starts the execution of the for loop. That is, i = 0, and the condition i<=rowNum or 0<=6 evaluates to be true.
- Therefore, program flow goes inside the loop; now j=1 and the condition j<=space or 1<=5 evaluates to be true.
- Therefore, program flow goes inside this loop and prints a single space.
- Now the value of j gets incremented. So j=2 and the condition j<=space or 2<=space or 2<=5 evaluates to true again, resulting in the printing of another space.
- In this way, there are 4 spaces that get printed, and the condition is evaluated to be false.
- After exiting this loop, decrement the value of space to print one space less from the next line or row.
- Using the third for loop, print stars.
- That is, at first execution, j=1, and the condition j<=(2*i-1) or j<=(2*1-1) or 1<=(1) or 1<=1 evaluates to be true, therefore program flow goes inside this loop and prints a star (*).
- Now the value of j gets incremented. So j=2
- And the condition j<=(2*i-1) or 2<=(2*1-1) or 2<=(1) evaluates to be false, therefore the program ends this loop.
- Using endl, begin the next thing on a new line.
- Now program flow increments the value of the outer for loop's variable, which is i. So i=2
- And the condition i<=rowNum or 2<=6 evaluates to be true again, therefore program flow goes inside the loop again, and this process continues until the condition evaluates to be false.
In this way, the star pattern of the upper diamond gets printed, and in a similar way, the lower diamond also gets printed.
Print a diamond pattern of numbers
This is the same program as the previous one. The only difference is that instead of using stars, we've used numbers to print a diamond pattern of numbers.
#include<iostream> using namespace std; int main() { int i, j, rowNum, space, num=1; cout<<"Enter the Number of Rows: "; cin>>rowNum; space = rowNum-1; for(i=1; i<=rowNum; i++) { for(j=1; j<=space; j++) cout<<" "; space--; for(j=1; j<=(2*i-1); j++) { cout<<num; num++; } cout<<endl; num = 1; } space = 1; for(i=1; i<=(rowNum-1); i++) { for(j=1; j<=space; j++) cout<<" "; space++; for(j=1; j<=(2*(rowNum-i)-1); j++) { cout<<num; num++; } cout<<endl; num = 1; } cout<<endl; return 0; }
Here is its sample run with user input, 5:
Print a diamond pattern of alphabet characters
This is the last program that creates a diamond pattern of alphabet characters.
#include<iostream> using namespace std; int main() { int i, j, rowNum, space; char ch='A'; cout<<"Enter the Number of Rows: "; cin>>rowNum; space = rowNum-1; for(i=1; i<=rowNum; i++) { for(j=1; j<=space; j++) cout<<" "; space--; for(j=1; j<=(2*i-1); j++) { cout<<ch; ch++; } cout<<endl; ch = 'A'; } space = 1; for(i=1; i<=(rowNum-1); i++) { for(j=1; j<=space; j++) cout<<" "; space++; for(j=1; j<=(2*(rowNum-i)-1); j++) { cout<<ch; ch++; } cout<<endl; ch = 'A'; } cout<<endl; return 0; }
Here is a sample run with user input and a row size of 5:
The same program in different languages
« Previous Program Next Program »