# C Program to Print Diamond Pattern of Numbers

There are many pattern programs are written by programmers for practice purposes. The diamond pattern programs are one of them. Here we will write the C program to print the diamond pattern of numbers.

## C Program to Print the Diamond Pattern of Numbers

``````     1
123
12345
1234567
123456789
1234567
12345
123
1``````

The code for the above pattern is given below.

```#include<stdio.h >
int main()
{
int n, a;

printf("Enter number of rows: ");
scanf("%d",&n);

// for first half portion
// from top to bottom
for(int i=1; i<=n; i++)
{
// In each iteration a will
// start from 1
a = 1;

// print space
for(int j=i; j <= n; j++)
{
printf(" ");
}

// print digit
for(int k=1; k <= 2*i-1; k++)
{
printf("%d",a++);
}

// new line
printf("n");
}

// for second portion
for(int i=n-1; i>=1; i--)
{
// In each iteration a will
// start from 1
a=1;

// print space
for(int j=n; j>=i; j--)
{
printf(" ");
}

// print digit
for(int k=1; k<=2*i-1; k++)
{
printf("%d",a++);
}

// new line
printf("\n");
}

return 0;
}
```

Output for different test-cases:-

``````Enter N value: 3
1
123
12345
123
1``````
``````Enter N value: 5
1
123
12345
1234567
123456789
1234567
12345
123
1``````

Print the given pattern using the C program.

``````    0
010
01210
0123210
012343210
0123210
01210
010
0``````

In this pattern, each row starts with zero and also ends with zero. It is a diamond pattern so every row contains odd items.

```#include<stdio.h>
int main()
{
int n, a=0;

printf("Enter value of n: ");
scanf("%d",&n);

// increasing portion of the pattern
for(int i=1; i<=n+1; i++)
{

// print space
for(int j=i; j<=n; j++)
{
printf(" ");
}

// print digit
for(int k=1; k<=2*i-1; k++)
{
if(k<i) printf("%d",a++);
else if(k==i) printf("%d",a);
else printf("%d",--a);
}

// new line
printf("\n");
}

// decreasing portion of the pattern
for(int i=n; i>=1; i--)
{
// print space
for(int j=n; j>=i; j--)
{
printf(" ");
}

// print digit
for(int k=1; k<=2*i-1; k++)
{
if(k<i) printf("%d",a++);
else if(k==i) printf("%d",a);
else printf("%d",--a);
}

// new line
printf("\n");
}

return 0;
}
```

Output for different test-cases:-

``````Enter value of n: 3
0
010
01210
0123210
01210
010
0``````
``````Enter value of n: 5
0
010
01210
0123210
012343210
01234543210
012343210
0123210
01210
010
0``````

## Half Diamond Pattern Programs using Numbers

``````1
2*2
3*3*3
4*4*4*4
3*3*3
2*2
1``````

The code for the above pattern,

```#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, place;

printf("Enter number of rows: ");
scanf("%d", &n);

for(int i=1; i< 2*n; i++)
{
if(i < n) place=i;
else place = abs(2*n-i);

for(int j=1; j< 2*place; j++)
if(j%2==0) printf("*"); // stars
else printf("%d",place); // numbers

printf("\n"); // next line
}

return 0;
}```

Output for different test-cases:-

Enter number of rows: 3
1
2*2
3*3*3
2*2
1

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

``````1
12
123
1234
12345
1234
123
12
1``````

Code for the above pattern

```#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, place, a;

printf("Enter number of rows: ");
scanf("%d",&n);

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

if(i < n) place=i;
else place = abs(2*n-i);

// print digit
for(int j=1; j<=place; j++)
printf("%d",a++);

printf("\n"); //next line
}

return 0;
}```

Output for different test-cases:-

Enter number of rows: 5
1
12
123
1234
12345
1234
123
12
1

Enter number of rows: 7
1
12
123
1234
12345
123456
1234567
123456
12345
1234
123
12
1

``````1
123
12345
1234567
123456789
1234567
12345
123
1``````

Code for the above pattern

```#include<stdio.h>
#include<stdlib.h>
int main()
{
int n, place, a;

printf("Enter number of rows: ");
scanf("%d",&n);

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

if(i < n) place=i;
else place = abs(2*n-i);

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

printf("\n"); //next line
}

return 0;
}```

Output for different test-cases:-

Enter number of rows: 5
1
123
12345
1234567
123456789
1234567
12345
123
1

Enter number of rows: 7
1
123
12345
1234567
123456789
1234567891011
12345678910111213
1234567891011
123456789
1234567
12345
123
1

## Hollow Diamond Number Pattern in C

``````     1
2 2
3   3
4     4
5       5
4     4
3   3
2 2
1``````

The pattern starts with 1 and displays up to 5. The first and last row contains only 1 and the remaining rows contain exactly 2 same numbers. From 1st to 5th row the size of pattern increases and from 6th to 9th row the size of pattern decreased.

```#include<stdio.h>
int main()
{
int n, a=1;

printf("Enter number of rows: ");
scanf("%d",&n);

// for first half portion
for(int i=1; i<=n; i++)
{

// print space
for(int j=i; j<=n; j++)
{
printf(" ");
}

// print digit and space
for(int k=1; k<=2*i-1; k++)
{
if(k==1 || k==2*i-1) printf("%d",a);
else printf(" ");
}

// decrease temp variable
a++;

// new line
printf("\n");
}

// update temp variable
a=n-1;

// for second half portion
for(int i=n-1; i>=1; i--)
{

// print space
for(int j=n; j>=i; j--)
{
printf(" ");
}

// print digit and space
for(int k=1; k<=2*i-1; k++)
{
if(k==1 || k==2*i-1) printf("%d",a);
else printf(" ");
}

// decrease temp variable
a--;

// new line
printf("\n");
}

return 0;
}```

Output for different test-cases:-

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

If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or you find anything incorrect? Let us know in the comments. Thank you!