C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Loop Programs in C

Print Number Diamond Pattern

Introduction

The Number Diamond Pattern is a symmetrical pattern formed by combining a number pyramid and its inverted reflection.
It displays numbers increasing from 1 up to the row count and then decreasing back symmetrically.

For example, for n = 5:

                                          1

                                        1   2

                                      1   2   3

                                    1   2   3   4

                                  1   2   3   4   5

                                    1   2   3   4

                                      1    2   3

                                         1    2

                                            1

This program is excellent for mastering nested loops and mirror pattern logic.

 

C Program: Print Number Diamond Pattern

Method 1: Using for loop

C

#include <stdio.h>

 

int main() {

    int n;

    printf("Enter number of rows: ");

    scanf("%d", &n);

 

    // Upper half (pyramid)

    for (int i = 1; i <= n; i++) {

        for (int j = i; j < n; j++)

            printf(" ");

        for (int k = 1; k <= i; k++)

            printf("%d ", k);

        printf("\n");

    }

 

    // Lower half (inverted pyramid)

    for (int i = n - 1; i >= 1; i--) {

        for (int j = n; j > i; j--)

            printf(" ");

        for (int k = 1; k <= i; k++)

            printf("%d ", k);

        printf("\n");

    }

 

    return 0;

}

Output

 
OUTPUT :
Enter number of rows: 5
    1
   1 2
  1 2 3
 1 2 3 4
1 2 3 4 5
 1 2 3 4
  1 2 3
   1 2
    1
 

Explanation

  1. The first loop block prints the upper pyramid (1 to n).
  2. The second loop block prints the inverted pyramid (n–1 to 1).
  3. Each part uses nested loops:
    • One for spaces (alignment)
    • One for numbers (1 to current row number)

 

C Program: Print Number Diamond Pattern

Method 2: Using while loop

C

#include <stdio.h>

 

int main() {

    int n, i, j, k;

    printf("Enter number of rows: ");

    scanf("%d", &n);

 

    i = 1;

    // Upper half

    while (i <= n) {

        j = i;

        while (j < n) {

            printf(" ");

            j++;

        }

 

        k = 1;

        while (k <= i) {

            printf("%d ", k);

            k++;

        }

 

        printf("\n");

        i++;

    }

 

    i = n - 1;

    // Lower half

    while (i >= 1) {

        j = n;

        while (j > i) {

            printf(" ");

            j--;

        }

 

        k = 1;

        while (k <= i) {

            printf("%d ", k);

            k++;

        }

 

        printf("\n");

        i--;

    }

 

    return 0;

}

Output

 
OUTPUT :
Enter number of rows: 5
    1
   1 2
  1 2 3
 1 2 3 4
1 2 3 4 5
 1 2 3 4
  1 2 3
   1 2
    1
  

Explanation

  1. The first loop block prints the upper pyramid (1 to n).
  2. The second loop block prints the inverted pyramid (n–1 to 1).
  3. Each part uses nested loops:
    • One for spaces (alignment)
    • One for numbers (1 to current row number)

 

C Program: Print Number Diamond Pattern

Method 3: Using do..while loop

C

#include <stdio.h>

 

int main() {

    int n, i, j, k;

    printf("Enter number of rows: ");

    scanf("%d", &n);

 

    i = 1;

    // Upper half

    do {

        j = i;

        do {

            if (j < n)

                printf(" ");

            j++;

        } while (j <= n);

 

        k = 1;

        do {

            if (k <= i)

                printf("%d ", k);

            k++;

        } while (k <= i);

 

        printf("\n");

        i++;

    } while (i <= n);

 

    i = n - 1;

    // Lower half

    do {

        j = n;

        do {

            if (j > i)

                printf(" ");

            j--;

        } while (j >= i);

 

        k = 1;

        do {

            if (k <= i)

                printf("%d ", k);

            k++;

        } while (k <= i);

 

        printf("\n");

        i--;

    } while (i >= 1);

 

    return 0;

}

Output

 
OUTPUT :
Enter number of rows: 5
    1
   1 2
  1 2 3
 1 2 3 4
1 2 3 4 5
 1 2 3 4
  1 2 3
   1 2
    1
  

Explanation

  1. The first loop block prints the upper pyramid (1 to n).
  2. The second loop block prints the inverted pyramid (n–1 to 1).
  3. Each part uses nested loops:
    • One for spaces (alignment)
    • One for numbers (1 to current row number)