File Handling in C Exercises and Solutions
C Pattern Programming Exercises and Examples
In this tutorial you will find lot of pattern programming exercises and examples. Pattern programming exercises manly used to enhance the logic of programmer, by solving this programs you can easily increase your logical thinking ability or also it will increase your loops and if-else statements knowledge.
Pattern programming Exercises and there solutions:
Thank you for visiting us....... keep visiting. Learn our more C programming exercises with their solutions.....😊
C Number Pattern Programming Exercises & Examples
In this tutorial you will learn number pattern programs with there solutions. You can practice it to enhance your programming logic. I hope this exercises will help you to understand working of looping statements, if-else statements and more.
Quick links:
Exercises and examples of number pattern's in C:
C Program to Print Number Heart Pattern
Ex: Write a C program to print number heart pattern, which shows the steps to print pattern. How to write a C program to print number heart pattern, which shows steps to print pattern . C program to print number heart pattern which shows steps to print pattern.
Input from user:
Enter the number: 5
Expected output:
11 22
1111 2222
333333333
3333333
33333
333
3
This pattern is same as previous exercises star heart pattern.
Only difference is:
In this pattern we only need to replace the * with numbers 1, 2 and 3.
This number's also shows the steps to print this pattern.
Program to print number heart pattern:
#include<stdio.h>
void main()
{
int no,z;
int i,j,k;
printf("Enter the number:\n");
scanf("%d",&no);
/*To print upper part*/
z=no*2;
for(i=no/2;i<=no;i=i+2)
{
/*To print left peak */
for(j=1;j<no-i;j=j+2)
{
printf(" ");
}
for(k=1;k<=i;k++)
{
printf("1");
}
/*To print right peak*/
for(j=1;j<=no-i;j++)
{
printf(" ");
}
for(k=1;k<=i;k++)
{
printf("2");
}
printf("\n");
}
/*To print lower part means inverted triangle*/
for(i=1;i<=no;i++)
{
for(j=1;j<i;j++)
{
printf(" ");
}
for(k=1;k<z;k++)
{
printf("3");
}
z-=2;
printf("\n");
}
}
Above program shows the following output:
C Program to Print Diamond Number Pattern
Ex: Write a C program to print diamond number pattern. How to write a C program to print diamond number pattern. C program to print diamond number pattern.
Input from user:
Enter the number: 5
Expected output:
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
Step by step logic of the given:
For better understanding i have devided this code in two parts.
To print upper half part:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1. Accept input number from user.
2. Run outer for loop from 1 to no which shows rows in pattern:
for(i=1;i<=no;i++)
3. Run inner for loop from i to no-1 to print spaces:
for(j=i;j<no;j++)
{
printf(" ");
}
4. Run another inner for loop from 1 to i which shows columns in pattern:
for(k=1;k<=i;k++)
5. Inside the second inner for loop print value of k with one space:
printf("%d ",k);
6. After that outside the block of inner for loop print next line \n for print new row.
1 2 3 4
1 2 3
1 2
1
1. Run outer loop from 1 to no-1 which shows rows in pattern:
for(i=1;i<no;i++)
2. Run inner for loop from 1 to i to print spaces:
for(j=1;j<=i;j++)
{
printf(" ");
}
3. Run another one inner for loop from 1 to no-i and inside the loop print value of k :
for(k=1;k<=no-i;k++)
{
printf("%d ",k);
}
4. Last print \n for new row.
Program to print diamond number pattern:
#include<stdio.h>
void main()
{
int no,i,j,k;
printf("Enter the number:");
scanf("%d",&no);
/*To print upper part*/
for(i=1;i<=no;i++)
{
for(j=i;j<no;j++)
{
printf(" ");
}
for(k=1;k<=i;k++)
{
printf("%d ",k);
}
/*For next row*/ printf("\n");
}
/*To print lower part*/
for(i=1;i<no;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(k=1;k<=no-i;k++)
{
printf("%d ",k);
}
/*For next row*/
printf("\n");
}
}
Above program shows the following output:
C program to print full pyramid number pattern
Ex: Write a C program to print full pyramid number pattern. How to write a C program to print full pyramid number pattern. C program to print full pyramid number pattern.
Input from user:
Enter the number: 5
Expected output:
1
123
12345
1234567
123456789
C program to print inverted half right side of pyramid number pattern
Ex: Write a C program to print inverted half right side of pyramid number pattern. How to write a C program to print inverted half right side of pyramid number pattern. C program to print inverted half right side of pyramid number pattern.
Input from user:
Enter the number:
5
Expected output:
12345
1234
123
12
1
Step by step logic of the given program:
1. Accept input number from user declare variable say no.
2. Run outer for loop from 1 to no which shows rows in pattern:
for(i=1;i<=no;i++)
3. Run inner for loop from 1 to (no+1)-i which shows columns in pattern:
for(j=1;j<=(no+1)-i;j++)
4. Inside the inner loop print value of j :
printf("%d",j);
5. For next row print \n.
Program to print inverted half right side of pyramid number pattern:
#include<stdio.h>
void main()
{
int i,j,no;
printf("Enter the number:\n");
scanf("%d",&no);
/*Run outer loop from 1 to no*/
for(i=1;i<=no;i++)
{
/*Run inner loop from 1 to (no+1)-i*/
for(j=1;j<=(no+1)-i;j++)
{
/*Print value of j*/ printf("%d",j);
}
/*For next row*/ printf("\n");
}
}
Above program shows the following output:
C program to print inverted half left side of the pyramid number pattern
Ex: Write a C program to print inverted half left side of the pyramid number pattern. How to write a C program to print inverted half left side of the pyramid number pattern. C program to print inverted half left side of the pyramid number pattern.
Input from user:
Enter the number:
5
Expected output:
12345
1234
123
12
1
Step by step logic of the given program:
1. Accept input number from user declare variable say no.
2. Run outer for loop from 1 to no which shows number of rows:
for(i=1;i<=no;i++)
3. Run inner for loop from 1 to i-1 to print spaces:
for(j=1;j<i;j++)
{
printf(" ");
}
4. Run another one inner for loop from 1 to (no+1)-i to print star:
for(k=1;k<=(no+1)-i;k++)
{
printf("%d",k);
}
5. For next row print \n.
Program to print inverted half left side of the pyramid number pattern:
#include<stdio.h>
void main()
{
int i,j,k,no;
printf("Enter the number:\n");
scanf("%d",&no);
/*Run loops*/
for(i=1;i<=no;i++)
{
/* Print spaces from second row, in incremented manner*/
for(j=1;j<i;j++)
{
printf(" ");
}
/* Print numbers in decremented manner*/
for(k=1;k<=(no+1)-i;k++)
{
printf("%d",k);
}
/* For next row*/
printf("\n");
}
}
Above program shows the following output:
C program to print half left side of pyramid number pattern
Ex: Write a C program to print half left side of pyramid number pattern. How to write a C program to print half left side of pyramid number pattern. C program to print half left side of pyramid number pattern.
Input from user:
Enter the number: 5
Expected output:
1
12
123
1234
12345
Step by step logic of the given program:
This pattern is same as previous exercises star pattern:
*
**
***
****
*****
Difference is:
In this pattern we only need to replace the * with value of k .
1. Accept input number from user declare variable say no.
2. Run outer loop from 1 to no which shows the number of rows in pattern:
for(i=1;i<=no;i++)
3. Run first inner loop from i to no-1 to print spaces:
for(j=i;j<no;j++)
{
printf(" ");
}
4. Run second inner loop from 1 to i and print value of k:
for(k=1;k<=i;k++)
{
printf("%d",k);
}
5. For next row print \n.
Program to print half left side of pyramid number pattern:
#include<stdio.h>
void main()
{
int no,i,j,k;
printf("Enter the number:\n");
scanf("%d",&no);
/*Run loops*/
for(i=1;i<=no;i++)
{
for(j=i;j<no;j++)
{
/*Print spaces*/
printf(" ");
}
for(k=1;k<=i;k++)
{
/*Print value of k*/
printf("%d",k);
}
/*For new row*/ printf("\n");
}
}
Above program shows the following output:
C program to print half right side of pyramid number pattern
Ex: Write a C program to print half right side of pyramid number pattern. How to write a C program to print half right side of pyramid number pattern. C program to print half right side of pyramid number pattern.
Input from user:
Enter the number: 5
Expected output:
1
12
123
1234
12345
Step by step logic of the given program:
This pattern is same as previous exercises star pattern:
*
**
***
****
*****
Difference is:
In this pattern we only need to replace the * with value of j .
1. Accept input number from user declare variable say no.
2. Run outer for loop from 1 to no which shows rows in pattern:
for(i=1;i<=no;i++)
3. Run inner for loop from 1 to i which shows columns in pattern:
for(j=1;j<=i;j++)
4. Inside the inner loop print value of j :
printf("%d",j);
5. For next row print \n.
Program to print half right side of pyramid number pattern:
#include<stdio.h>
void main()
{
int no,i,j;
printf("Enter the number: ");
scanf("%d",&no);
/*Run outer loop from 1 to no*/
for(i=1;i<=no;i++)
{
for(j=1;j<=i;j++)
{
/*Print value of j*/ printf("%d",j);
}
/*For new row*/ printf("\n");
}
}
Above program shows the following output:
C program to print inverted pyramid number pattern
Ex: Write a C program to print inverted pyramid number pattern. How to write a C program to print inverted pyramid number pattern. C program to print inverted pyramid number pattern.
Input from user:
Enter the number: 5
Expected output:
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
Step by step logic of the given program:
Program to print inverted pyramid number pattern:
C program to print number pyramid pattern
Ex: Write a C program to print number pyramid pattern. How to write a C program to print number pyramid pattern. C program to print number pyramid pattern.
Input from user:
Enter the number: 5
Expected output:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
Step by step logic of the given program:
This pattern is same as previous exercises star pyramid pattern:
*
**
***
****
*****
Difference is:
In this pattern we only need to replace the * with value of k .
1. Accept input number from user.
2. Run outer for loop from 1 to no which shows rows in pattern:
for(i=1;i<=no;i++)
3. Run inner for loop from i to no-1 to print spaces:
for(j=i;j<no;j++)
{
printf(" ");
}
4. Run another inner for loop from 1 to i which shows columns in pattern:
for(k=1;k<=i;k++)
5. Inside the second inner for loop print value of k with one space:
printf("%d ",k);
6. After that outside the block of inner for loop print next line \n for print new row.
Program to print number pyramid pattern :
#include<stdio.h>
void main()
{
int no,i,j,k;
printf("Enter the number:");
scanf("%d",&no);
for(i=1;i<=no;i++)
{
for(j=i;j<no;j++)
{
/*Print spaces*/
printf(" ");
}
for(k=1;k<=i;k++)
{
/*print value of k with one space...to print it like a pyramid*/
printf("%d ",k);
}
/*For next row*/
printf("\n");
}
}
Above program shows the following output:
C Program to Print Hollow Square Number Pattern with Diagonals
Ex: Write a C program to print hollow square number pattern with diagonal. How to write a C program to print hollow square number pattern with diagonal. C program to print hollow square number pattern with diagonal.
Input from user:
Enter the number: 9
Expected output:
Step by step logic of the given program:
To understand this pattern, first you need to understand previous exercises hollow square number pattern.
1. Accept input number from user declare variable say no.
2. Run outer loop from 1 to no, which shows rows in pattern.
3.
Run inner loop from 1 to no
to print columns in pattern.
4. Inside the inner loop using if statement give conditions to print number:
if(i==1||i==no||j==1||j==no||j==ic||j==dc)
5. Otherwise print spaces.
6. Outside the block of inner for loop, print newline \n.
C program to print hollow square number pattern with diagonal:
#include<stdio.h>
void main()
{
int no,i,j;
int ic=1,dc;
printf("Enter the number:");
scanf("%d",&no);
dc=no;
for(i=1;i<=no;i++)
{
for(j=1;j<=no;j++)
{
/*Give conditions to print value of j*/ if(i==1||i==no||j==1||j==no||j==ic||j==dc)
{
printf("%d",j);
}
else
{
/*To print spaces*/
printf(" ");
}
}
ic++;
dc--;
/*for next row*/
printf("\n");
}
}
Above program shows the following output: