Half Diamond number pattern in C

In this tutorial, we will write a C Program to display full hourglass patterns using numbers. Before that, you may go through the following topic in C.

Half Diamond number pattern in C

We will write various programs for the left half and right half diamond with different kinds of number patterns. These programs can also be called the arrowhead pattern programs in C.

Right Half Diamond number patter

1. Increasing number pattern

#include <stdio.h>

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

  printf("Enter the no. of rows: ");
  scanf("%d", &rows);

  for (i = 1; i <= rows; i++)
  {
    for (j = 1; j <= i; j++)
      printf("%d ", j);

    printf("\n");
  }

  for (i = rows - 1; i >= 1; i--)
  {
    for (j = 1; j <= i; j++)
      printf("%d ", j);

    printf("\n");
  }

  return 0;
}

Output:

Enter the no. 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


2. Mirror number pattern

#include <stdio.h>

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

  printf("Enter the no of rows: ");
  scanf("%d", &rows);

  //upper half
  for (i = 1; i <= rows; i++)
  {
    for (j = 1; j <= i; j++)
      printf("%d", j);

    for (j = i - 1; j >= 1; j--)
      printf("%d", j);

    printf("\n");
  }

  //lower half
  for (i = rows - 1; i >= 1; i--)
  {
    for (j = 1; j <= i; j++)
      printf("%d", j);

    for (j = i - 1; j >= 1; j--)
      printf("%d", j);

    printf("\n");
  }

  return 0;
}

Output:

Enter the no of rows: 5
1
121
12321
1234321
123454321
1234321
12321
121
1


3. Increment in two numbers

#include <stdio.h>

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

  printf("Enter the no. of rows: ");
  scanf("%d", &rows);

  // Upper half
  for (i = 1; i <= rows; i++)
  {
    for (j = 1; j <= (i *2) - 1; j++)
      printf("%d", j);

    printf("\n");
  }

  // Lower Half
  for (i = rows - 1; i >= 1; i--)
  {
    for (j = 1; j <= (i *2) - 1; j++)
      printf("%d", j);

    printf("\n");
  }

  return 0;
}

Output:

Enter the no. of rows: 5
1
123
12345
1234567
123456789
1234567
12345
123
1


Left half diamond pattern in C

Pattern 1:

#include <stdio.h>

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

  printf("Enter the no of rows: ");
  scanf("%d", &rows);

  // upper half
  for (i = 1; i <= rows; i++)
  {
    for (j = rows - 1; j >= i; j--)
      printf(" ");

    for (j = 1; j <= i; j++)
      printf("%d", j);

    printf("\n");
  }

  //lower part
  for (i = rows - 1; i >= 1; i--)
  {
    for (j = i; j < rows; j++)
      printf(" ");

    for (j = 1; j <= i; j++)
      printf("%d", j);

    printf("\n");
  }

  return 0;
}

Output:

Enter the no of rows: 5
    1
   12
  123
 1234
12345
 1234
  123
   12
    1

Pattern 2:

#include <stdio.h>

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

  printf("Enter the no. of rows: ");
  scanf("%d", &rows);

  // Upper half
  for (i = 1; i <= rows; i++)
  {
    for (j = (i *2); j < (rows *2); j++)
      printf(" ");

    for (j = 1; j <= (i *2 - 1); j++)
      printf("%d", j);

    printf("\n");
  }

  // Lower Half
  for (i = rows - 1; i >= 1; i--)
  {
    for (j = (i *2); j < (rows *2); j++)
      printf(" ");

    for (j = 1; j <= (i *2 - 1); j++)
      printf("%d", j);

    printf("\n");
  }

  return 0;
}

Output

Enter the no. of rows: 5
        1
      123
    12345
  1234567
123456789
  1234567
    12345
      123
        1