C Program to Print a Diamond Pattern

Introduction

A diamond pattern consists of two parts: an upper triangle and a lower inverted triangle. This pattern helps beginners in programming understand how to use nested loops for controlling spaces and printing characters, such as stars (*).

Problem Statement

Create a C program that:

  • Accepts the number of rows (height of half the diamond).
  • Prints a diamond-shaped pattern using stars (*).

Example:

  • Input: rows = 5
  • Output:
        *
       ***
      *****
     *******
    *********
     *******
      *****
       ***
        *
    

Solution Steps

  1. Input the Number of Rows: The size determines the height of the upper and lower parts of the diamond.
  2. Use Nested Loops: The first set of loops prints the upper triangle, and the second set prints the inverted triangle.
  3. Display the Diamond Pattern: Use loops to print stars and spaces to form the diamond shape.

C Program

#include <stdio.h>

int main() {
    int i, j, rows;

    // Step 1: Accept the number of rows (half the height of the diamond)
    printf("Enter the number of rows: ");
    scanf("%d", &rows);

    // Step 2: Print the upper part of the diamond (including the middle row)
    for (i = 1; i <= rows; i++) {
        // Step 3: Print spaces for alignment
        for (j = i; j < rows; j++) {
            printf(" ");
        }
        // Step 4: Print stars
        for (j = 1; j <= (2 * i - 1); j++) {
            printf("*");
        }
        // Move to the next line after each row
        printf("\n");
    }

    // Step 5: Print the lower part of the diamond (inverted triangle)
    for (i = rows - 1; i >= 1; i--) {
        // Step 6: Print spaces for alignment
        for (j = rows; j > i; j--) {
            printf(" ");
        }
        // Step 7: Print stars
        for (j = 1; j <= (2 * i - 1); j++) {
            printf("*");
        }
        // Move to the next line after each row
        printf("\n");
    }

    return 0;
}

Explanation

Step 1: Input Number of Rows

  • The program starts by accepting the number of rows from the user, which defines the height of the upper and lower parts of the diamond.

Step 2-4: Print the Upper Part of the Diamond

  • The outer loop prints the upper part of the diamond, including the middle row.
  • An inner loop prints spaces for alignment, and another inner loop prints the stars (*). The number of stars increases as you move down the rows, forming the upper half of the diamond.

Step 5-7: Print the Lower Part of the Diamond

  • The second part of the program prints the inverted triangle, which forms the lower part of the diamond.
  • The number of spaces increases as you go down, while the number of stars decreases, creating the inverted effect.

Output Example

For rows = 5, the output will be:

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

For rows = 6, the output will be:

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

Conclusion

This C program prints a diamond pattern using stars (*) by printing an upper triangle and an inverted lower triangle. The program effectively demonstrates the use of nested loops for formatting and aligning output, which is a useful exercise for beginners learning C programming.

Comments