Star Patterns in C, Java, and Python

5 days ago 5

In this article, Interviewer may ask you below given different star patterns where you need to print different patterns of star patterns, like — 

  • Pyramid patterns, 
  • Floyd’s triangle, 
  • Pascal’s triangle, 
  • Left or right aligned pyramid, etc.

Here I wrote the code for your study, and also wrote comments everywhere in the code snippets, so you can understand the inner-outer loop and how it is working internally.


1. Pattern: Right-Angled Triangle of Stars

Expected output: 

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

Solution in C Program:

#include <stdio.h> int main() { // Define number of rows for the pattern int i, j; int rows = 5; // Outer loop for each row for(i = 1; i <= rows; i++) { // Inner loop to print stars in each row for(j = 1; j <= i; j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing stars in a row } return 0; }

Solution in Java:

public class StarPattern { public static void main(String[] args) { // Define the number of rows for the pattern int rows = 5; // Outer loop for each row for(int i = 1; i <= rows; i++) { // Inner loop to print stars in each row for(int j = 1; j <= i; j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing stars in a row } } }

Solution in Python:

# Define the number of rows for the pattern rows = 5 # Outer loop for each row for i in range(1, rows + 1): # Inner loop to print stars in each row for j in range(i): print("*", end="") # Print a star without a newline print() # Move to the next line after printing stars in a row

2. Pattern: Inverted Right-Angled Triangle of Stars

Expected output:

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

Solution in C Program:

#include <stdio.h> int main() { // Define the number of rows for the pattern int i, j; int rows = 5; // Outer loop for each row for(i = rows; i >= 1; i--) { // Inner loop to print stars in each row for(j = 1; j <= i; j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing stars in a row } return 0; }

Solution in Java:

public class InvertedStarPattern { public static void main(String[] args) { // Define the number of rows for the pattern int rows = 5; // Outer loop for each row (decreasing) for(int i = rows; i >= 1; i--) { // Inner loop to print stars in each row for(int j = 1; j <= i; j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing stars in a row } } }

Solution in Python:

# Define the number of rows for the pattern rows = 5 # Outer loop for each row (decreasing) for i in range(rows, 0, -1): # Inner loop to print stars in each row for j in range(i): print("*", end="") # Print a star without a newline print() # Move to the next line after printing stars in a row

3. Pattern: Right-Angled Triangle with Centered Stars (Pyramid-like)

Expected output:

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

Solution in C Program:

#include <stdio.h> int main() { // Define the number of rows for the pattern int i, j, space; int rows = 5; // Outer loop for each row for(i = 1; i <= rows; i++) { // Print spaces before stars for(space = 1; space <= rows - i; space++) { printf(" "); // Print a space } // Print stars for(j = 1; j <= i; j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing spaces and stars } return 0; }

Solution in Java:

public class PyramidStarPattern { public static void main(String[] args) { // Define the number of rows for the pattern int rows = 5; // Outer loop for each row for(int i = 1; i <= rows; i++) { // Inner loop for printing spaces for(int space = 1; space <= rows - i; space++) { System.out.print(" "); // Print a space } // Inner loop for printing stars for(int j = 1; j <= i; j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing spaces and stars } } }

Solution in Python:

# Define the number of rows for the pattern rows = 5 # Outer loop for each row for i in range(1, rows + 1): # Print spaces before stars for space in range(rows - i): print(" ", end="") # Print a space without moving to the next line # Print stars in each row for j in range(i): print("*", end="") # Print a star without a newline print() # Move to the next line after printing spaces and stars

4. Pattern: Inverted Pyramid of Stars

Expected output:

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

Solution in C Program:

#include <stdio.h> int main() { // Define the number of rows for the pattern int i, j, space; int rows = 5; // Outer loop for each row for(i = rows; i >= 1; i--) { // Print spaces before stars for(space = 1; space <= rows - i; space++) { printf(" "); // Print a space } // Print stars for(j = 1; j <= i; j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing spaces and stars } return 0; }

Solution in Java:

public class InvertedPyramidStarPattern { public static void main(String[] args) { // Define the number of rows for the pattern int rows = 5; // Outer loop for each row (decreasing) for(int i = rows; i >= 1; i--) { // Inner loop for printing spaces for(int space = 1; space <= rows - i; space++) { System.out.print(" "); // Print a space } // Inner loop for printing stars for(int j = 1; j <= i; j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing spaces and stars } } }

Solution in Python:

# Define the number of rows for the pattern rows = 5 # Outer loop for each row (decreasing) for i in range(rows, 0, -1): # Print spaces before stars for space in range(rows - i): print(" ", end="") # Print a space without moving to the next line # Print stars in each row for j in range(i): print("*", end="") # Print a star without a newline print() # Move to the next line after printing spaces and stars

5. Pattern: Diamond of Stars

Expected output:

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

Solution in C Program:

#include <stdio.h> int main() { // Define the number of rows for the upper half of the diamond int i, j, space; int rows = 5; // Number of rows in the upper half // Upper half of the diamond for(i = 1; i <= rows; i++) { // Print spaces before stars for(space = 1; space <= rows - i; space++) { printf(" "); // Print a space } // Print stars for(j = 1; j <= (2*i - 1); j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing spaces and stars } // Lower half of the diamond for(i = rows - 1; i >= 1; i--) { // Print spaces before stars for(space = 1; space <= rows - i; space++) { printf(" "); // Print a space } // Print stars for(j = 1; j <= (2*i - 1); j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing spaces and stars } return 0; }

Solution in Java:

public class DiamondStarPattern { public static void main(String[] args) { // Define the number of rows for the upper half of the diamond int rows = 5; // Number of rows in the upper half // Upper half of the diamond for(int i = 1; i <= rows; i++) { // Print spaces before stars for(int space = 1; space <= rows - i; space++) { System.out.print(" "); // Print a space } // Print stars for(int j = 1; j <= (2 * i - 1); j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing spaces and stars } // Lower half of the diamond for(int i = rows - 1; i >= 1; i--) { // Print spaces before stars for(int space = 1; space <= rows - i; space++) { System.out.print(" "); // Print a space } // Print stars for(int j = 1; j <= (2 * i - 1); j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing spaces and stars } } }

Solution in Python:

# Define the number of rows for the upper half of the diamond rows = 5 # Number of rows in the upper half # Upper half of the diamond for i in range(1, rows + 1): # Print spaces before stars for space in range(rows - i): print(" ", end="") # Print a space without moving to the next line # Print stars for j in range(2 * i - 1): print("*", end="") # Print a star without a newline print() # Move to the next line after printing spaces and stars # Lower half of the diamond for i in range(rows - 1, 0, -1): # Print spaces before stars for space in range(rows - i): print(" ", end="") # Print a space without moving to the next line # Print stars for j in range(2 * i - 1): print("*", end="") # Print a star without a newline print() # Move to the next line after printing spaces and stars

6. Pattern: Hollow Diamond of Stars

Expected output:

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

Solution in C Program:

#include <stdio.h> int main() { int i, j, space; int rows = 5; // Number of rows in the upper half // Upper half of the diamond for(i = 1; i <= rows; i++) { // Print spaces before stars for(space = 1; space <= rows - i; space++) { printf(" "); // Print a space } // Print stars and spaces between them for(j = 1; j <= (2 * i - 1); j++) { if(j == 1 || j == (2 * i - 1)) { printf("*"); // Print the star at the beginning and end of each row } else { printf(" "); // Print a space in between } } printf("n"); // Move to the next line after printing spaces and stars } // Lower half of the diamond for(i = rows - 1; i >= 1; i--) { // Print spaces before stars for(space = 1; space <= rows - i; space++) { printf(" "); // Print a space } // Print stars and spaces between them for(j = 1; j <= (2 * i - 1); j++) { if(j == 1 || j == (2 * i - 1)) { printf("*"); // Print the star at the beginning and end of each row } else { printf(" "); // Print a space in between } } printf("n"); // Move to the next line after printing spaces and stars }

Solution in Java:

public class HollowDiamondStarPattern { public static void main(String[] args) { int rows = 5; // Number of rows in the upper half // Upper half of the diamond for(int i = 1; i <= rows; i++) { // Print spaces before stars for(int space = 1; space <= rows - i; space++) { System.out.print(" "); // Print a space } // Print stars and spaces between them for(int j = 1; j <= (2 * i - 1); j++) { if(j == 1 || j == (2 * i - 1)) { System.out.print("*"); // Print the star at the beginning and end of each row } else { System.out.print(" "); // Print a space in between } } System.out.println(); // Move to the next line after printing spaces and stars } // Lower half of the diamond for(int i = rows - 1; i >= 1; i--) { // Print spaces before stars for(int space = 1; space <= rows - i; space++) { System.out.print(" "); // Print a space } // Print stars and spaces between them for(int j = 1; j <= (2 * i - 1); j++) { if(j == 1 || j == (2 * i - 1)) { System.out.print("*"); // Print the star at the beginning and end of each row } else { System.out.print(" "); // Print a space in between } } System.out.println(); // Move to the next line after printing spaces and stars } } }

Solution in Python:

# Define the number of rows for the upper half of the diamond rows = 5 # Number of rows in the upper half # Upper half of the diamond for i in range(1, rows + 1): # Print spaces before stars for space in range(rows - i): print(" ", end="") # Print a space without moving to the next line # Print stars and spaces between them for j in range(1, 2 * i): if j == 1 or j == 2 * i - 1: print("*", end="") # Print a star at the beginning and end of each row else: print(" ", end="") # Print a space in between print() # Move to the next line after printing spaces and stars # Lower half of the diamond for i in range(rows - 1, 0, -1): # Print spaces before stars for space in range(rows - i): print(" ", end="") # Print a space without moving to the next line # Print stars and spaces between them for j in range(1, 2 * i): if j == 1 or j == 2 * i - 1: print("*", end="") # Print a star at the beginning and end of each row else: print(" ", end="") # Print a space in between print() # Move to the next line after printing spaces and stars

7. Pattern: Hollow Diamond-like Pattern of Stars

Expected output:

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

Solution in C Program:

#include <stdio.h> int main() { int i, j, space; int rows = 5; // Number of rows in the upper half // Upper half of the pattern for(i = rows; i >= 1; i--) { // Print stars at the start for(j = 1; j <= i; j++) { printf("*"); // Print a star } // Print spaces in the middle for(space = 1; space <= (2 * (rows - i)); space++) { printf(" "); // Print a space } // Print stars at the end for(j = 1; j <= i; j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing stars and spaces } // Lower half of the pattern for(i = 2; i <= rows; i++) { // Print stars at the start for(j = 1; j <= i; j++) { printf("*"); // Print a star } // Print spaces in the middle for(space = 1; space <= (2 * (rows - i)); space++) { printf(" "); // Print a space } // Print stars at the end for(j = 1; j <= i; j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing stars and spaces } return 0; }

Solution in Java:

public class HollowDiamondLikePattern { public static void main(String[] args) { int rows = 5; // Number of rows in the upper half // Upper half of the pattern for(int i = rows; i >= 1; i--) { // Print stars at the start for(int j = 1; j <= i; j++) { System.out.print("*"); // Print a star } // Print spaces in the middle for(int space = 1; space <= (2 * (rows - i)); space++) { System.out.print(" "); // Print a space } // Print stars at the end for(int j = 1; j <= i; j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing stars and spaces } // Lower half of the pattern for(int i = 2; i <= rows; i++) { // Print stars at the start for(int j = 1; j <= i; j++) { System.out.print("*"); // Print a star } // Print spaces in the middle for(int space = 1; space <= (2 * (rows - i)); space++) { System.out.print(" "); // Print a space } // Print stars at the end for(int j = 1; j <= i; j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing stars and spaces } } }

Solution in Python:

# Define the number of rows for the upper half of the pattern rows = 5 # Number of rows in the upper half # Upper half of the pattern for i in range(rows, 0, -1): # Print stars at the start for j in range(i): print("*", end="") # Print a star without moving to the next line # Print spaces in the middle for space in range(2 * (rows - i)): print(" ", end="") # Print a space without moving to the next line # Print stars at the end for j in range(i): print("*", end="") # Print a star without moving to the next line print() # Move to the next line after printing stars and spaces # Lower half of the pattern for i in range(2, rows + 1): # Print stars at the start for j in range(i): print("*", end="") # Print a star without moving to the next line # Print spaces in the middle for space in range(2 * (rows - i)): print(" ", end="") # Print a space without moving to the next line # Print stars at the end for j in range(i): print("*", end="") # Print a star without moving to the next line print() # Move to the next line after printing stars and spaces

8. Pattern: Upper Pyramid of Stars

Expected output:

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

Solution in C Program:

#include <stdio.h> int main() { int i, j, space; int rows = 5; // Number of rows for the pyramid // Outer loop for each row for(i = 1; i <= rows; i++) { // Inner loop to print spaces for(space = 1; space <= rows - i; space++) { printf(" "); // Print a space } // Inner loop to print stars for(j = 1; j <= (2 * i - 1); j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing stars } return 0; }

Solution in Java:

public class PyramidStarPattern { public static void main(String[] args) { int rows = 5; // Number of rows for the pyramid // Outer loop for each row for(int i = 1; i <= rows; i++) { // Inner loop to print spaces for(int space = 1; space <= rows - i; space++) { System.out.print(" "); // Print a space } // Inner loop to print stars for(int j = 1; j <= (2 * i - 1); j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing stars } } }

Solution in Python:

# Define the number of rows for the pyramid rows = 5 # Number of rows for the pyramid # Outer loop for each row for i in range(1, rows + 1): # Print spaces before stars for space in range(rows - i): print(" ", end="") # Print a space without moving to the next line # Print stars in each row for j in range(2 * i - 1): print("*", end="") # Print a star without a newline print() # Move to the next line after printing stars

9. Pattern: Inverted Pyramid of Stars

Expected output:

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

Solution in C Program:

#include <stdio.h> int main() { int i, j, space; int rows = 5; // Number of rows for the inverted pyramid // Outer loop for each row for(i = rows; i >= 1; i--) { // Inner loop to print spaces for(space = 1; space <= rows - i; space++) { printf(" "); // Print a space } // Inner loop to print stars for(j = 1; j <= (2 * i - 1); j++) { printf("*"); // Print a star } printf("n"); // Move to the next line after printing stars } return 0; }

Solution in Java:

public class InvertedPyramidStarPattern { public static void main(String[] args) { int rows = 5; // Number of rows for the inverted pyramid // Outer loop for each row for(int i = rows; i >= 1; i--) { // Inner loop to print spaces for(int space = 1; space <= rows - i; space++) { System.out.print(" "); // Print a space } // Inner loop to print stars for(int j = 1; j <= (2 * i - 1); j++) { System.out.print("*"); // Print a star } System.out.println(); // Move to the next line after printing stars } } }

Solution in Python:

# Define the number of rows for the inverted pyramid rows = 5 # Number of rows for the inverted pyramid # Outer loop for each row for i in range(rows, 0, -1): # Print spaces before stars for space in range(rows - i): print(" ", end="") # Print a space without moving to the next line # Print stars in each row for j in range(2 * i - 1): print("*", end="") # Print a star without a newline print() # Move to the next line after printing stars

Hope you love these star patterns with perfect coding on BeingCoders, which contains the point-to-point descriptions.

©️ 2025, stars pattern in C, Java, and Python programming language by Rakshit Shah (Author).

You may also like,

1. Check Pair of Brackets (Well-Formatted) in an Expression
A simple program to check the pair of brackets using a Stack in Java, Python, and C#.

2. Alphabet Patterns — Java, Python, and C program
Learn how to code different alphabet patterns in Java, Python, and C programming.

3. Number Patterns in C, Java, and Python Programming
Learn how to create popular number patterns with step-by-step solutions in C, Java, and Python programming languages.

4. Hard Number Patterns in C, Java, and Python Programming [Interview Questions]
Learn how to solve the hardest number patterns that are mostly asked by interviewers in IT Industries.

Read Entire Article