You are on page 1of 120

Aim: Write a C Program to find the sum of individual digits of positive integer.

Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int n,r,s=0;
clrscr()
printf(enter any positive integer);
scanf(%d,&n)
while(n > 0)
{
r = n % 10;
s = s + r;
n=n / 10;
}
printf(the sum of individual digits of positive integer=%d,s);
getch();
}
Output:
enter any positive integer
234
the sum of individual digits of positive integer=9

Page No:

Aim: Write a c Program to generate the first n terms of the fibonacci sequence.
Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int i,n,a=0,b=1,c;
clrscr();
printf(enter any number);
scanf(%d,&n);
printf( the fibonacci sequence);
printf(%d\t%d\t,a,b);
for(i=3; i<=n;i++)
{
c=a+b;
printf(%d\t,c);
a=b;
b=c;
}
getch();
}

Page No:

Output:
enter any number
8
the fibonacci sequence
0

13

Page No:

Aim: Write a c Program to generate all the prime numbers between 1 and n where n is
a value supplied by the user.
Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,n,count;
clrscr();
printf(enter any number);
scanf(%d,&n);
printf(prime numbers between 1 and %d\n,n);
for(i=1; i<=n; i++ )
{
j=1;
count=0;
while(j<=i)
{
if(i%j==0)
count++;
j++;
}
if(count==2)

Page No:

printf(%d\t,i);
}
}
Output:
enter any number
20
prime numbers between 1 and 20 :
2

11

13

17

19

Page No:

Aim: Write a c Program to calculate the following


sum = 1 x2 / 2! + x4 /4! x6 / 6! + x8 /8! x10 /10!
Program:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
long int i,j,k=2,f,x;
double s=0;
clrscr();
for(i=2;i<=10;i=i+2)
{
f=1;
for(j=1;j<=i;j++)
f=f*j;

if(k%2==0)
s= s-pow(x,i)/(float)f;
else
s= s+ pow(x,i)/(float)f;

k++;

Page No:

}
printf("the sum=%f",s);
getch();
}
Output:
the sum=-3.293402312390023230000000000000000000000e+78

Page No:

Aim: Write a c Program to find the roots of a quadratic equation.


Program:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int a,b,c;
float d,r1,r2;
clrscr();
printf("enter values of a,b &c");
scanf("%d%d%d",&a,&b,&c);
d=b*b - 4*a*c;
if( d==0)
{
r1=r2=-b/2*a;
printf("roots are equal\n");
printf("root1=root2=%f",r1);
}
else if(d>0)
{
r1=-b+sqrt(d)/(float)2*a;
r2=-b-sqrt(d)/(float)2*a;

Page No:

printf("roots are real\n");


printf("root1=%f\troot2=%f",r1,r2);
}
else
{
printf("roots are imaginary");
}
getch();
}
Output1:
enter values of a,b &c
242
roots are equal
root1=root2=-4.000000
Output2:
enter values of a,b &c
142
roots are real
root1=-2.585786

root2=-5.414214

Output3:
enter values of a,b &c
145
roots are imaginary

Page No:

Aim : Write a c Program to find the factorial of a given integer using non recursive
function
Program
#include<stdio.h>
#include<conio.h>
void main()
{
int n,f;
int fact(int);
clrscr();
printf(enter any integer);
scanf(%d,&n);
f=fact(n);
printf(the factorial of a given number=%d,f);
getch();
}
int fact(int n)
{
int f=1,i;
for(i=1;i<=n;i++)
f=f*i;
}
return(f)

Page No:

Output:
enter any integer
5
the factorial of a given number =120

Page No:

Aim : Write a c Program to find the factorial of a given integer using recursive function
Program
#include<stdio.h>
#include<conio.h>
void main()
{
int n,f;
int fact(int);
clrscr();
printf(enter any integer);
scanf(%d,&n);
f=fact(n);
printf(the factorial of a given number=%d,f);
getch();
}
int fact(int n)
{
int f;
if(n==1)
return 1;
else
f=n*fact(n-1);
return (f);

Page No:

Output:
enter any integer
5
the factorial of a given number =120

Page No:

Aim: Write a c Program to find the lcm and gcd of two given integers using nonrecursive function
Program :
#include<stdio.h>
#include<conio.h>
void lcm(int,int);
int gcd(int,int);
void main()
{
int a,b,z;
clrscr();
printf("\n enter a,b values");
scanf("%d%d",&a,&b);
if(a<b)
{
z=gcd(a,b);
printf("\n the gcd of%d and %d is %d",a,b,z);
}
else
{
z=gcd(b,a);
printf("\n the gcd of%d and %d is %d",b,a,z);
}
lcm(a,b);
getch();
}
int gcd(int c,int d)
{
int r;
r=d%c;
while(r!=0)
{
d=c;
c=r;
r=d%c;
}
return(c);
}
void lcm(int x,int y)
Page No:

{
int l;
if(x<y)
l=((x*y)/gcd(x,y));
else
l=((x*y)/gcd(x,y));
printf("\n l.c.m of %d and %d is %d",x,y,l);
}

Output::

enter a,b values6 5


the gcd of5 and 6 is 1
l.c.m of 6 and 5 is 30

Page No:

Aim: the total distance traveled by a vehicle in t secs is given by distance=ut+1/2at*t


where u and a are initial velocity and a is acceleration. Write a c Program to find the
distance traveled atregular intervals of the time for the given values of u and a. the
Program should provideflexibility to user to select his own time intervals and repeat
calculations for different u and a.
Program
#include<stdio.h>
#include<conio.h>
void main()
{
float s,u,a,sum=0;
int t,k,d;
clrscr();
printf("\nenter velocity and acceleration of vehicle");
scanf("%f %f",&u,&a);
printf("\nenter final time");
scanf("%d",&k);
printf("\nenter time interval");
scanf("%d",&d);
for(t=0;t<=k;t=t+d)
{
s=(u*t)+(0.5*a*t*t);
printf("\ndistance travelled is %f",s);
sum=sum+s;
}
printf("\nsum of distance is %f",sum);
getch();
}
Output::
enter velocity and acceleration of vehicle50 10
enter final time2
enter time interval1
distance travelled is 0.000000

Page No:

distance travelled is 55.000000


distance travelled is 120.000000
sum of distance is 175.000000

Aim:Program to read two numbers and perform desired arithmetic operation.


Program:
Page No:

#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,c,d;
clrscr();
printf("enter the values a and b");
scanf("%d%d",&a,&b);
printf("\n 1.addition");
printf("\n 2.subtraction");
printf("\n 3.multiplication");
printf("\n 4.division");
printf("\n 5.modulo division");
printf("\n enter your choice from 1-5:");
scanf("%d",&d);
switch(d)
{
case 1:
printf("\n addition");
c=a+b;
printf("\n the result is =%d",c);
break;
case 2:
printf("\n subtraction");
c=a-b;
printf("\n the result is=%d",c);
break;
case 3:
printf("\n multiplication");
c=a*b;
printf("\n the result is=%d",c);
break;
case 4:
printf("\n division");
c=a/b;
printf("\n the result is=%d",c);
break;
case 5:
printf("\n modluo division");

Page No:

c=a%b;
printf("\n the result is=%d",c);
break;
default:
printf("\n wrong entry");
break;
}
getch();
}

Output::

enter the values a and b 5 6


1.addition
2.subtraction
3.multiplication
4.division
5.modulo division
enter your choice from 1-5:3
multiplication
the result is=30

Aim: Write a c Program to find both the largest and smallest number in a list of
integers

Page No:

Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int i,n,a[10],largest,smallest;
clrscr();
printf("how many numbers you want to enter:");
scanf("%d",&n);
printf("enter %d elements",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);

largest=a[0];
smallest=a[0];
for(i=1;i<n;i++)
{
if(largest<a[i])
largest=a[i];
if(smallest>a[i])
smallest=a[i];
}
printf("\n largest number =%d\n",largest);

Page No:

printf("smallest number=%d",smallest);
getch();
}
Output:
how many numbers you want to enter:5
enter 5 elements
10
20
30
40
50

largest number =50


smallest number=10

Aim: Write a c Program to find addition of two matrices


Program:

Page No:

#include<stdio.h>
#include<conio.h>
void main()
{
int a[2][2],b[2][2],c[2][2],r1,c1,r2,c2,i,j;
clrscr();
printf("enter no of rows & columns of matrix-a");
scanf("%d%d",&r1,&c1);
printf("enter no of rows & columns of matrix-b");
scanf("%d%d",&r2,&c2);
if(r1==r2 && c1==c2)
{
printf("enter elements of matrix-a");

for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
scanf("%d",&a[i][j]);
}
}
printf("enter elements of matrix-b");
for(i=0;i<r2;i++)

Page No:

{
for(j=0;j<c2;j++)
{
scanf("%d",&b[i][j]);
}
}
printf("matrix addition:\n");
for(i=0;i<r1;i++)
{
for(j=0;j<c1;j++)
{
c[i][j]=a[i][j]+b[i][j];
printf("%2d",c[i][j]);
}
printf("\n");
}
}
else
printf("matrix addition is not possible");
getch();
}
Output:
enter no of rows & columns of matrix-a

Page No:

2
2
enter no of rows & columns of matrix-b
2
2
enter elements of matrix-a
1

enter elements of matrix-b


5

matrix addition:
6

10

12

Aim: Write a c Program to find multiplication of two matrices


Program:

Page No:

#include<stdio.h>
#include<conio.h>
void main()
{
int a[2][2],b[2][2],c[2][2],i,j,m,n,p,q,k;
clrscr();
printf("\n enter the order of matrix-a");
scanf("%d%d",&m,&n);
printf("\n enter order of matrix b");
scanf("%d%d",&p,&q);
if(n==p)
{
printf("enter elements of matrix-a");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}

printf("enter elements of matrix b");


for(i=0;i<p;i++)
{
for(j=0;j<q;j++)

Page No:

scanf("%d",&b[i][j]);
}
for(i=0;i<m;i++)
{
for(j=0;j<q;j++)
{
c[i][j]=0;
for(k=0;k<p;k++)
{
c[i][j]=c[i][j]+(a[i][k]*b[k][j]);
}
}
}
printf("\n multiplication of matrix is\n");
for(i=0;i<m;i++)
{
for(j=0;j<q;j++)
{
printf("%2d",c[i][j]);
}
printf("\n");
}
}

Page No:

else
printf("\n matrix multiplication is not possible");
getch();
}
Output:
enter the order of matrix-a
2
2
enter order of matrix b
2
2
enter elements of matrix-a
1

enter elements of matrix b


1

multiplication of matrix is
3

Output2:
enter the order of matrix-a

Page No:

2
2
enter order of matrix b
1
2
matrix multiplication is not possible

Aim: Write a c Program to delete n characters from a given position in given string
Program:

Page No:

#include<stdio.h>
#include<conio.h>
void main()
{
int i,pos,n;
char mstr[100];
void strdel();

clrscr();
printf("enter main string");
gets(mstr);
printf("\n enter how many characters and from which position");
scanf("%d%d",&n,&pos);
strdel(mstr,n,pos);
getch();
}

void strdel(char m[],int n,int p)


{
int i;
for(i=p; m[i]!='\0';i++)
m[i]=m[i+n];

Page No:

printf("after deletion=%s",m);
}
Output:
enter main string : hyderabad
enter how many characters and from which position
3
3
after deletion=hydbad

Aim: Write a c Program to determine if the given string is a palindrome or not.


Program:

Page No:

#include<stdio.h>
#include<conio.h>
void main()
{
int i,j=0,len=0;
char s1[10],s2[10];
clrscr();
printf("enter any string:");
scanf("%s",s1);

for(i=0;s1[i]!='\0';i++)
{
len++;
}

for(i=len-1;i>=0;i--)
{
s2[j]=s1[i];
j++;
}
s2[j]=null;
for(i=0;s1[i]!='\0';i++)
{

Page No:

if(s1[i]==s2[i])
{
continue;
}
else
{
printf("not palindrome");
getch();
exit(0);
}
}
printf("palindrome");
getch();
}
Output:
enter any string:liril
palindrome
Output2:
enter any string:india
not palindrome

Aim: Write a C program that displays the position or index in the string S where the
string T begins or -1 if S doest not contain T

Page No:

Program:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char s[20],t[10];
char *found;
clrscr();
printf("enter the main string");
gets(s);
printf("enter the string to be searched");
gets(t);
found=strstr(s,t);
if(found)
printf("string t is found in the main string at %d position",found+1);
else
printf("-1");
getch();
}

Output:
enter the main string :

Page No:

hyderabad
enter the string to be searched:
bad
string t is found in the main string at 7 position

Aim: Write a c Program to count the lines words and characters in a given text.
Program:

Page No:

#include<stdio.h>
#include<conio.h>
void main()
{
int line=0,word=0,ch=0;
char c;
clrscr();
printf("enter text");
while((c=getchar())!=eof)
{
if (c=='\n')
line++;
else if(c==' ')
word++;
else
ch++;
}
printf("no of lines=%d",line);
printf("\n no of words=%d",word+line);
printf("\n no of characters=%d",ch);
getch();
}
Output:

Page No:

enter textindia is my country


all indians are my brothers and sisters
^z
no of lines=2
no of words=11
no of characters=49

Aim: Write a c Program to generate pascals triangle.


Program

Page No:

#include<stdio.h>
#include<conio.h>
void main()
{
int b,p,q,r,x;
clrscr();
printf("\n enter no.of rows");
scanf("%d", &r);
b=1;
q=0;
printf("\n pascal's triangle\n");
while(q<r)
{
for(p=30-3*q;p>0;p--)
printf(" ");
for(x=0;x<=q;x++)
{
if(x==0||q==0)
b=1;
else
b=(b*(q-x+1)/x);
printf("%6d",b);
}
printf("\n");
q++;
}
getch();
}

Output::
enter no.of rows 5

Page No:

pascal's triangle
1
1
1
1
1

1
2

3
4

1
3

1
4

Aim: Write a c Program to construct a pyramid of numbers

Page No:

Program
#include<stdio.h>
#include<conio.h>
void main()
{
int n,i,j,k,x=1;
clrscr();
printf("enter no of rows");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=n-i;k>=1;k--)
printf(" ");

for(j=1;j<=i;j++)
{
printf("%4d",x);
x++;
}
printf("\n");
}
getch();
}

Page No:

Output:
enter no of rows 4
1
2 3
4 5 6
7 8 9 10

Page No:

Aim: Write a c Program to read in two numbers x and n and the compute the sum of
this geometric progression.
Program:
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int x,n,i,s=1;
clrscr();
label:
printf("enter values of x and n");
scanf("%d%d",&x,&n);
if(n>0)
{
for(i=1;i<=n;i++)
{
s=s+pow(x,i);
}
printf("sum=%d",s);
}
else
{

Page No:

printf("enter positive integer for n\n");


goto label;
}
getch();
}
Output:
enter values of x and n
5
3
sum=156

Output2:
enter values of x and n
5
-2
enter positive integer for n
enter values of x and n

Page No:

Aim: Program to perform addition,subtraction,multiplication and division on two


complex numbers.((x+iy) & (a+ib)).
Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int x,y,a,b;
void add(int,int,int,int);
void sub(int,int,int,int);
void mul(int,int,int,int);
void div(float,float,float,float);
clrscr();
printf("\n enter real and imaginary part of 1st and 2nd numbers");
scanf("%d%d%d%d",&a,&b,&x,&y);
printf("\n numbers are:%d+i%d,%d+i%d",x,y,a,b);
add(x,y,a,b);
sub(x,y,a,b);
mul(x,y,a,b);
div(x,y,a,b);
getch();
}
void add(int p,int q,int r,int s)
{
int real,imag;
real=p+r;
imag=q+s;
printf("\n sum=%d+i%d",real,imag);
}
void sub(int p,int q,int r,int s)
{
int real,imag;
real=p-r;
imag=q-s;
printf("\n diffrence=%d+i%d",real,imag);
}
void mul(int p,int q,int r,int s)
{

Page No:

int real,imag;
real=p*r-q*s;
imag=q*r+p*s;
printf("\n product=%d+i%d",real,imag);
}
void div(float p,float q,float r,float s)
{
float real,imag;
real=(p*r+q*s)/(r*r+s*s);
imag=(q*r-p*s)/(r*r+s*s);
printf("\n division=%f+i%f",real,imag);
}
Output:
enter real and imaginary part of 1st and 2nd numbers 7 8 4 6
numbers are:4+i6,7+i8
sum=11+i14
diffrence=-3+i-2
product=-20+i74
division=0.672566+i0.088496

Page No:

Aim: Write a c Program which copies one file to another.


Program.
#include<stdio.h>
#include<conio.h>
void main()
{
file *f1,*f2;
char c;
clrscr();
f1=fopen("sample","w");
printf("enter text\n");
while((c=getchar())!=eof)
{
putc(c,f1);
}
fclose(f1);
f1=fopen("sample","r");
f2=fopen("sample2","w");
while((c=getc(f1))!=eof)
{
putc(c,f2);
}
fclose(f1);

Page No:

fclose(f2);
getch();
}
Output:
enter text
india is my country
^z

f:\turboc3>type sample
india is my country

f:\turboc3>type sample2
india is my country

Page No:

Aim: Write a c Programme to display the contents of a file.


Program:
#include<stdio.h>
#include<conio.h>
void main()
{
file *fp;
char c;
clrscr();
fp=fopen("f:\turboc3\sample","r");
printf("contents of a file:\n");
while((c=getc(fp))!=eof)
{
putc(c,stdout);
}
fclose(fp);
getch();
}
Output:
contents of a file:
india is my country

Page No:

Aim: Write a Program to find no of spaces,tabs,lines and characters in a file:


Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int line,space,ch,tab;
char c;
file *fp;

fp=fopen("example","w");
printf("enter text\n");
while((c=getchar())!=eof)
{
putc(c,fp);
}
fclose(fp);
fp=fopen("example","r");
line=space=tab=ch=0;
while((c=getc(fp))!=eof)
{
if(c==' ')
space++;

Page No:

else if(c=='\t')
tab++;
else if(c=='\n')
line++;
else
ch++;
}
printf("\nno of spaces=%d",space);
printf("\nno of tabs=%d",tab);
printf("\nno of lines=%d",line);
printf("\nno of characters=%d",ch);
fclose(fp);
getch();
}
Output:
enter text
joseph hyderabad
yosepu secbad
james hydbad
david secbad
^z

no of spaces=2

Page No:

no of tabs=2
no of lines=4
no of characters=49

Page No:

Aim : Write a c Programme to merge two files into a third file.


Program:
#include<stdio.h>
#include<conio.h>
void main()
{
file *f1,*f2;
char c;
clrscr();
f1=fopen("sample","w");
printf("enter text into sample file\n");
while((c=getchar())!=eof)
{
putc(c,f1);
}
fclose(f1);
f2=fopen("sample","w");
printf("enter text into sample2 file\n");
while((c=getchar()!=eof)
{
putc(c,f2);
}
fclose(f2);

Page No:

f1=fopen("sample","r");
f2=fopen("sample2","r");
f3=fopen("sample3","w");
while((c=getc(f1))!=eof)
putc(c,f3);
while((c=getc(f2))!=eof)
putc(c,f3);
fclose(f1);
fclose(f2);
fclose(f3);
getch();
}

getch();
}
Output:
enter text into sample file
india is my country
^z
enter text into sample2 file
all indians are my brothers and sisters
^z

Page No:

f:\turboc3>type sample
india is my country

f:\turboc3>type sample2
all indians are my brothers and sisters

f:\turboc3>type sample3
india is my country
all indians are my brothers and sisters

f:\turboc3>

Page No:

Aim: Write a c Program to search a key value in a given list of integers using linear
search
Program:
#include<stdio.h>
#include<conio.h>
#include<process.h>
void main()
{
int i,n,element,a[10];
clrscr();
printf("enter how many elements u want to enter");
scanf("%d",&n);
printf("enter %d elements",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);

printf("enter any element to search");


scanf("%d",&element);
for(i=0;i<n;i++)
{
if(a[i]==element)
{
printf("element is found at position %d",i);
getch();

Page No:

exit(0);
}
}
printf("element is not found");

getch();

}
Output:
enter how many elements u want to enter
5
enter 5 elements
20
30
10
40
50
enter any element to search
30
element is found at 1 position

Page No:

Aim: Aim: Write a c Program to search a key value in a given list of integers using
binary search
Program:
#include<stdio.h>
#include<conio.h>
#include<process.h>
void main()
{
int i,n,element,a[10],low,high,mid;
clrscr();
printf("enter how many elements u want to enter");
scanf("%d",&n);
printf("enter %d elements",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);

printf("enter any element to search");


scanf("%d",&element);

low=0;
high=n-1;

while(low<=high)

Page No:

{
mid = (low+high)/2;
if(element< a[mid])
high=mid-1;
else if (element > a[mid])
low=mid+1;
else
{
printf("element is found at position =%d",mid);
getch();
exit(0);
}
}
printf("element is not found");
getch();
}
Output:
enter how many elements u want to enter
5
enter 5 elements
10
20
30

Page No:

40
50
enter any element to search
30
element is found at 1 position

Page No:

Aim: Write a c Program to sort a given list of integers in ascending order using bubble
sort.
Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,n,a[10],temp;
clrscr();
printf("enter how many elements u want to enter");
scanf("%d",&n);
printf("enter %d elements",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
{
for(j=i;j<n-1;j++)
{
if(a[i]>a[j+1])
{
temp=a[i];
a[i]=a[j+1];
a[j+1]=temp;

Page No:

}
}
}
printf("sorted elements in ascending order\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);
getch();
}
Output:
enter how many elements u want to enter
5
enter 5 elements
20
30
10
50
40
sorted elements in ascending order
10
20
30
40
50

Page No:

Aim: Write a c Program to sort a given list of integers in ascending order using bubble
sort.
Program :
#include<stdio.h>
#include<conio.h>
#include<process.h>
void main()
{

int i,j,n,a[10],temp,min;
clrscr();
printf("enter how many elements u want to enter");
scanf("%d",&n);
printf("enter %d elements",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);

for(i=0;i<n-1;i++)
{
min=i;
for( j=i+1;j<n;j++)
{
if(a[j]<a[min])

Page No:

min=j;
}
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("after sorting :\n");
for(i=0;i<n;i++)
printf("%d\n",a[i]);

getch();
}
ouput:
enter how many elements u want to enter
5
enter 5 elements
20
30
10
50
40
after sorting
10

Page No:

20
30
40
50

Page No:

Aim: Write a c Program to sort a given list of integers in ascending order using
insertion sort
Program:
#include<stdio.h>
#include<conio.h>

void main()
{

int i,j,n,a[10],index;
clrscr();
printf("enter how many elements u want to enter");
scanf("%d",&n);
printf("enter %d elements",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);

for(i=1;i<n;i++)
{
index=a[i];
j=i;
while(j>0 && (a[j-1] >index))
{

Page No:

a[j]=a[j-1];
j=j-1;
}
a[j]=index;
}

printf("sorted elements:\n");
for( i=0;i<n;i++)
printf("%d\t",a[i]);
getch();
}
ouput:
enter how many elements u want to enter
5
enter 5 elements
20
30
10
50
40
sorted elements:
10

20

30

40

50

Page No:

Aim: Write a c Program to implement merge sort.


Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,k,n1,n2,a[10],b[10],c[20];
clrscr();
printf("enter how many elements u want to enter for first array");
scanf("%d",&n1);
printf("enter %d elements of first array",n1);
for(i=0;i<n1;i++)
scanf("%d",&a[i]);

printf("enter how many elements u want to enter for second array");


scanf("%d",&n2);
printf("enter %d elements of second array",n2);
for(i=0;i<n2;i++)
scanf("%d",&b[i]);
i=j=k=0;
while( i<n1 && j<n2)
{

Page No:

if(a[i]<b[j])
{
c[k]=a[i];
i++;
}
else
{
c[k]=a[j];
j++;
}
k++;

while(i<n1)
{
c[k]=a[i];
i++;
k++;
}
while(j<n2)
{
c[k]=a[j];

Page No:

j++;
k++;
}

printf("sorted elements:\n");
for( i=0;i<k;i++)
printf("%d\t",c[i]);
getch();
}
Output:
enter how many elements u want to enter for first array
2
enter 2 elements of first array
15
25
enter how many elements u want to enter for second array
3
enter 3 elements of second array
10
20
30
sorted elements:
10

15

20

25

30

Page No:

Aim: Write a c Program that implement stack operations using arrays.


Program:
#include<stdio.h>
#include<conio.h>
#include<process.h>
const int size=3;
int stk[size], top,i;
void push( );
void pop( );
void display( );
void main( )
{
int i,ch;
clrscr( );
while(1)
{
printf("\n1.push \n");
printf("2.pop \n");
printf("3.display \n");
printf("4.exit \n");
printf("enter your choice:");
scanf(%d,&ch);
switch(ch)

Page No:

{
case 1:
push();
break;
case 2:
pop();
break;
case 3:
printf("the elements are:");
display();
break;
case 4:
exit(0);
default:
printf("enter correct choice:");
break;
}
}
}
void push( )
{
int element;
if(top==size)

Page No:

{
printf("stack is full");
}
else
{
printf("enter any integer:");
scanf(%d,&element);
stk[top]=element;
top++;
}
}

void pop()
{

if(top==0)
{
printf("stack is empty");
}
else
{
--top;
printf("the deleted element is:",stk[top]);

Page No:

}
}
void display()
{
for(i=top-1;i>=0;i--)
{
printf(%d\n.stk[i]);
}
}
}
Output:
1.push
2.pop
3.display
4.exit
enter your choice : 1
enter any integer: 10
1.push
2.pop
3.display
4.exit
enter your choice : 1
enter any integer: 20
1.push
2.pop
3.display
Page No:

4.exit
enter your choice : 1
enter any integer: 30
1.push
2.pop
3.display
4.exit
enter your choice : 1
stack is full

1.push
2.pop
3.display
4.exit
enter your choice : 3
the elements are 30 20 10
1.push
2.pop
3.display
4.exit
enter your choice : 2
the deleted element is 30

1.push
2.pop
3.display

Page No:

4.exit
enter your choice : 2
the deleted element is 20
1.push
2.pop
3.display
4.exit
enter your choice : 2
the deleted element is 10
1.push
2.pop
3.display
4.exit
enter your choice : 2
stack is empty

1.push
2.pop
3.display
4.exit
enter your choice : 4

Page No:

Aim: Write a c Program to implement queues using arrays


Program:
#include<stdio.h>
#include<conio.h>
#include<process.h>
const int size=10;
int q[size],front,rear,i;
void insert( ) ;
void del( );
void display( );

void main()
{
int i,ch;
clrscr();
while(1)
{
printf("\n1.insert \n");
printf("2.delete \n");
printf("3.display \n");
printf("4.exit \n");
printf("enter your choice:");
scanf(%d,&ch);

Page No:

switch(ch)
{
case 1:
insert( );
break;
case 2:
del( );
break;
case 3:
printf("the elements are:");
display( );
break;
case 4:
exit(0);
default:
printf("enter correct choice:");
break;
}
}
}
void insert()
{
int element;

Page No:

if(rear = = size)
{
printf("queue is full");
}
else
{
printf("enter any integer:");
scanf(%d,&element);
q[rear]=element;
rear++;
}
}

void del()
{
if((rear==front) || rear==0)
{
printf("queue is empty");
rear=front=0;
}
else
{
printf("deleted element is :",q[front]);

Page No:

front++;
}
}
void display()
{
for(i=front;i<rear;i++)
{
printf(%d\n,q[i]);
}
}
}

Output:
1.insert
2.delete
3.display
4.exit
enter your choice: 1
enter any integer: 10
1.insert
2.delete
3.display
4.exit
enter your choice: 1
enter any integer: 20

Page No:

1.insert
2.delete
3.display
4.exit
enter your choice: 1
enter any integer: 30
1.insert
2.delete
3.display
4.exit
enter your choice: 1
queue is full
1.insert
2.delete
3.display
4.exit
enter your choice: 3
the elements are 10 20 30

1.insert
2.delete
3.display
4.exit
enter your choice: 2
deleted element is: 10

Page No:

1.insert
2.delete
3.display
4.exit
enter your choice: 2
deleted element is: 20

1.insert
2.delete
3.display
4.exit
enter your choice: 2
deleted element is: 30

1.insert
2.delete
3.display
4.exit
enter your choice: 2
queue is empty
1.insert
2.delete
3.display
4.exit
enter your choice: 4
Aim: Program For Conversion Of Infix To Postfix

Page No:

Program:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<process.h>
#define SIZE 20
int top= -1;
char stack[SIZE];
char infix[20],postfix[20],op;
void push_pop(int *);
void push(char);
void pop(int *);
int priority(char);
void main()
{
int p=-1,i;
stack[++top]='$';
clrscr();
printf("\n Enter an Infix Expression:");
gets(infix);
i=0;
while (infix[i]!='\0')
{
op=infix[i];
if((op>=48&&op<=57)||(op>=65&&op<=90)||(op>=97&&op<=122))
postfix[++p]=op;
else
push_pop(&p);
i++;
}
op='\0';
while(top!=0)
pop(&p);
printf("\n The Postfix Expression is %s",postfix);
getch();
}

Page No:

void push_pop(int *index)


{
if(op==')')
pop(index);
else
while(priority(op)<=priority(stack[top]))
{
if(stack[top]=='(')
{
push(op);
return;
}
else
pop(index);
}
if(op!=')')
push(op);
}

int priority(char x)
{
int retval;
switch(x)
{
case ')': retval=0;
break;
case '$': retval=1;
break;
case '+':
case '-': retval=2;
break;
case '*': retval=3;
break;
case '/': retval=4;
break;
case '(': retval=5;
break;
case '^': retval=6;

Page No:

break;
case '%': retval=7;
break;
default: printf("\n Invalid Operator found in Infix Expression");
getch();
exit(0);
}
return(retval);
}
void pop(int *index)
{
if(op==')')
{
while(stack[top]!='(')
{
postfix[++(*index)]=stack[top--];
if(top==0)
{
printf("\n Invalid Expression,Left paranthesis missed");
getch();
exit(0);
}
}
top--;
}
else if(stack[top]=='(')
{
printf("\n Invalid Expression,Right paranthesis missed");
getch();
exit(0);
}
else
postfix[++(*index)]=stack[top--];
}
void push(char op)
{
if(top<SIZE-1)
stack[++top]=op;
else
{

Page No:

printf("\nThe Stack reaches Overflow");


getch();
}
}
Output:
Enter an Infix Expression:a*b+c/d*f-g
The Postfix Expression is ab*cd/f*+gEnter an Infix Expression:a+(b*c+d)-f/g
The Postfix Expression is abc*d++fg/-

Aim: Program For Implementing Linear Linked List

Page No:

Program:
#include<conio.h>
#include<stdio.h>
#define null 0
typedef struct node
{
int data;
struct node *next;
}node;

void main()
{
node* delete(node* *list, int x);
void count(node* list);
void search(node* list,int x);
void display(node* list);
void insert(node* *list, int x);
int menu();
int x,ch;
char op;
node *list;
list=null;
clrscr();

Page No:

printf("**********INPUT**********");
do
{
ch=menu();
switch(ch)
{
case 1: printf("\nENTER THE ELEMENT TO BE INSERTED:");
scanf("%d",&x);
insert(&list,x);
break;
case 2: printf("ENTER THE ELEMENT TO BE DELETED:");
scanf("%d",&x);
delete(&list,x);
break;
case 3: display(list);
break;
case 4: count(list);
break;
case 5: printf("\n ENTER THE ELEMENT TO BE SEARCHED:");
scanf("%d",&x);
search(list,x);
break;
case 6: exit(0);

Page No:

break;
default:printf("\n INVALID CHOICE");
getch();

}
printf("\n DO YOU WANT TO CONTINUE(Y/N)?:");
op=getche();
}
while(op=='y'||op=='Y');
}

int menu()
{
int ch;
printf("\n**********MENU**********");
printf("\n1.INSERT");
printf("\n2.DELETE");
printf("\n3.DISPLAY");
printf("\n4.COUNT");
printf("\n5.SEARCH");
printf("\n6.EXIT");
printf("\nENTER YOUR CHOICE:");
scanf("%d",&ch);

Page No:

return(ch);
}

void insert(node* *list,int x)


{
node *p,*q;
p=(node*)malloc(sizeof(node));
p->data=x;
p->next=null;
if(*list==null)
*list=p;
else
{
for(q=*list;q->next!=null;q=q->next)
{ };
q->next=p;
}
}

node* delete(node* *list, int x)

Page No:

{
node *p,*q;
int m=0;
q=*list;
for(p=*list;p!=null;p=p->next)
{
if(p->data==x)
{
if(p==q)
{
q=q->next;
free(p);
*list=q;
m=1;
}
else
{
while(q->next!=p)
q=q->next;
q->next=p->next;
free(p);
m=1;
}

Page No:

}
}
if(m)
printf("\n %d IS DELETED FROM THE LIST",x);
else
printf("\n %d IS NOT PRESENT IN THE LIST",x);
}

void display(node* list)


{
int x;
node*p;
printf("\n THE LIST CONTAINS FOLLOWING ELEMENTS");
for(p=list;p!=null;p=p->next)
{
x=p->data;
printf("\n %d",x);
}
printf("\n");
}

void count(node* list)


{

Page No:

node *p;
int c=0;
p=list;
while(p!=null)
{
++c;
p=p->next;
}
printf("\n NUMBER OF ELEMENTS IN THE LIST ARE %d",c);
}

void search(node* list, int x)


{
node *p;
int m=0;
for(p=list;p!=null;p=p->next)
{
if(p->data==x)
m=1;
}
if(m)
printf("\N THE ELEMENT IS PRESENT");
else

Page No:

printf("\n THE ELEMENT IS NOT PRESENT");


}
OUTPUT
**********INPUT**********
**********MENU**********
1.INSERT
2.DELETE
3.DISPLAY
4.COUNT
5.SEARCH
6.EXIT
ENTER YOUR CHOICE:1

ENTER THE ELEMENT TO BE INSERTED:1

DO YOU WANT TO CONTINUE(Y/N)?:Y


**********MENU**********
1.INSERT
2.DELETE
3.DISPLAY
4.COUNT
5.SEARCH
6.EXIT

Page No:

ENTER YOUR CHOICE:1

ENTER THE ELEMENT TO BE INSERTED:2

DO YOU WANT TO CONTINUE(Y/N)?:Y


**********MENU**********
1.INSERT
2.DELETE
3.DISPLAY
4.COUNT
5.SEARCH
6.EXIT
ENTER YOUR CHOICE:3

THE LIST CONTAINS FOLLOWING ELEMENTS


1
2

DO YOU WANT TO CONTINUE(Y/N)?:Y


**********MENU**********
1.INSERT
2.DELETE
3.DISPLAY

Page No:

4.COUNT
5.SEARCH
6.EXIT
ENTER YOUR CHOICE:4

NUMBER OF ELEMENTS IN THE LIST ARE 2


DO YOU WANT TO CONTINUE(Y/N)?:Y
**********MENU**********
1.INSERT
2.DELETE
3.DISPLAY
4.COUNT
5.SEARCH
6.EXIT
ENTER YOUR CHOICE:5

ENTER THE ELEMENT TO BE SEARCHED:1


THE ELEMENT IS PRESENT
DO YOU WANT TO CONTINUE(Y/N)?:Y
**********MENU**********
1.INSERT
2.DELETE
3.DISPLAY

Page No:

4.COUNT
5.SEARCH
6.EXIT
ENTER YOUR CHOICE:2
ENTER THE ELEMENT TO BE DELETED:1

1 IS DELETED FROM THE LIST


DO YOU WANT TO CONTINUE(Y/N)?:Y
**********MENU**********
1.INSERT
2.DELETE
3.DISPLAY
4.COUNT
5.SEARCH
6.EXIT
ENTER YOUR CHOICE:3

THE LIST CONTAINS FOLLOWING ELEMENTS


2

DO YOU WANT TO CONTINUE(Y/N)?: Y


**********MENU**********
1.INSERT

Page No:

2.DELETE
3.DISPLAY
4.COUNT
5.SEARCH
6.EXIT
ENTER YOUR CHOICE:7

INVALID CHOICE

DO YOU WANT TO CONTINUE(Y/N)?:Y


**********MENU**********
1.INSERT
2.DELETE
3.DISPLAY
4.COUNT
5.SEARCH
6.EXIT
ENTER YOUR CHOICE:6

Aim: Program For Implementaion Of Stack Using Linked List

Page No:

Program:
#include<stdio.h>
#include<alloc.h>
#include<conio.h>
struct linkedstack
{
int num;
struct linkedstack *next;
};
typedef struct linkedstack stack;
stack *push(int,stack*);
stack *pop(stack*);
void printstack(stack*);
void main()
{
int choice,x;
stack *top;
top=NULL;
while(1)
{
clrscr();
printf("\n\t\tMENU");
printf("\n\t1.PUSH");

Page No:

printf("\n\t2.POP");
printf("\n\t3.PRINTSTACK");
printf("\n\t4.EXIT");
printf("\nENTER YOUR CHOICE");
scanf("%d",&choice);
switch(choice)
{
case 1: printf("\n ENTER THE NUMBER");
scanf("%d",&x);
top=push(x,top);
break;
case 2: top=pop(top);
break;
case 3: printstack(top);
break;
case 4: exit(0);
break;
default:printf("\n INVALID CHOICE SELECTED");
getch();
}
}
}
stack *push(int x,stack *top)

Page No:

{
stack *newnode;
if((newnode=(stack*)malloc(sizeof(stack)))==NULL)
{
printf("\n THERE IS NO MEMORY");
getch();
return top;
}
newnode->num=x;
newnode->next=top;
top=newnode;
printf("\n THE %d IS PUSHED ONTO STACK", newnode->num);
getch();
return top;
}
stack *pop(stack *top)
{
stack *temp;
temp=top;
if(temp!=NULL)
{
top=temp->next;
printf("\n THE %d IS POPPED OFF THE STACH", temp->num);

Page No:

free(temp);
}
else
printf("\n THE STACK IS EMPTY,YOU CANNOT POP");
getch();
return top;
}
void printstack(stack *top)
{
stack *temp;
if(top==NULL)
printf("\n THERE ARE NO ELEMENTS IN STACK");
else
{
printf("\n THE STACK ELEMENTS ARE");
temp=top;
while(temp!=NULL)
{
printf("\n%4d",temp->num);
temp=temp->next;
}
}
getch();

Page No:

}
OUTPUT
MENU
1.PUSH
2.POP
3.PRINTSTACK
4.EXIT
ENTER YOUR CHOICE 1

ENTER THE NUMBER 1

THE 1 IS PUSHED ONTO STACK

MENU
1.PUSH
2.POP
3.PRINTSTACK
4.EXIT
ENTER YOUR CHOICE 1

ENTER THE NUMBER 2

Page No:

THE 2 IS PUSHED ONTO STACK

MENU
1.PUSH
2.POP
3.PRINTSTACK
4.EXIT
ENTER YOUR CHOICE 1

ENTER THE NUMBER 3

THE 3 IS PUSHED ONTO STACK

MENU
1.PUSH
2.POP
3.PRINTSTACK
4.EXIT
ENTER YOUR CHOICE 3

Page No:

THE STACK ELEMENTS ARE


3
2
1

MENU
1.PUSH
2.POP
3.PRINTSTACK
4.EXIT
ENTER YOUR CHOICE 2

THE 3 IS POPPED OFF THE STACH

MENU
1.PUSH
2.POP
3.PRINTSTACK
4.EXIT
ENTER YOUR CHOICE 3

Page No:

THE STACK ELEMENTS ARE


2
1

MENU
1.PUSH
2.POP
3.PRINTSTACK
4.EXIT
ENTER YOUR CHOICE 4

Aim: Program For Implementation Of Queue Using Linked List

Page No:

Program:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<alloc.h>

struct linkedqueue
{
int num;
struct linkedqueue *next;
};

typedef struct linkedqueue queue;


queue *front, *rear;

void insert(int);
void del();
void printqueue();

void main()
{
int choice,x;
front=rear=NULL;

Page No:

while(1)
{
clrscr();
printf("\n\t\tMENU");
printf("\n\t1.INSERT");
printf("\n\t2.DELETE");
printf("\n\t3.PRINTQUEUE");
printf("\n\t4.EXIT");
printf("\nENTER YOUR CHOICE");
scanf("%d",&choice);
switch(choice)
{
case 1: printf("\n ENTER THE NUMBER");
scanf("%d",&x);
insert(x);
break;
case 2: del();
break;
case 3: printqueue();
break;
case 4: exit(0);
break;
default:printf("\n INVALID CHOICE SELECTED");

Page No:

getch();
}
}
}

void insert(int x)
{
queue *newnode;
if((newnode=(queue*)malloc(sizeof(queue)))==NULL)
{
printf("\n THERE IS MEMORY TO ALLOCATE");
getch();
return;
}
newnode->num=x;
newnode->next=NULL;
if(rear==NULL)
{
rear=newnode;
front=rear;
}
else
{

Page No:

rear->next=newnode;
rear=newnode;
}
printf("\n THE %d IS INSERTED INTO QUEUE",newnode->num);
getch();
}

void del()
{
queue *temp;
temp=front;
if(temp==NULL)
printf("\n THE QUEUE IS EMPTY");
else
{
front=temp->next;
printf("\n THE %d IS DELETED FROM QUEUE",temp->num);
free(temp);
if(front==NULL)
rear=front;
}
getch();

Page No:

void printqueue()
{
queue *temp;
if(front==NULL)
printf("\n THERE ARE NO ELEMENTS IN QUEUE");
else
{
printf("\n THE QUEUE ELEMENTS ARE");
temp=front;
while(temp!=NULL)
{
printf("%4d",temp->num);
temp=temp->next;
}
}
getch();
}

OUTPUT

Page No:

MENU
1.INSERT
2.DELETE
3.PRINTQUEUE
4.EXIT
ENTER YOUR CHOICE 1
ENTER THE NUMBER 1
THE 1 IS INSERTED INTO QUEUE
MENU
1.INSERT
2.DELETE
3.PRINTQUEUE
4.EXIT
ENTER YOUR CHOICE 1
ENTER THE NUMBER 2
THE 2 IS INSERTED INTO QUEUE
MENU
1.INSERT
2.DELETE
3.PRINTQUEUE
4.EXIT
ENTER YOUR CHOICE 1

Page No:

ENTER THE NUMBER 3

THE 3 IS INSERTED INTO QUEUE

MENU
1.INSERT
2.DELETE
3.PRINTQUEUE
4.EXIT
ENTER YOUR CHOICE 3

THE QUEUE ELEMENTS ARE 1 2 3


MENU
1.INSERT
2.DELETE
3.PRINTQUEUE
4.EXIT
ENTER YOUR CHOICE 2

THE 1 IS DELETED FROM QUEUE

MENU
1.INSERT

Page No:

2.DELETE
3.PRINTQUEUE
4.EXIT
ENTER YOUR CHOICE 3

THE QUEUE ELEMENTS ARE 2 3

MENU
1.INSERT
2.DELETE
3.PRINTQUEUE
4.EXIT
ENTER YOUR CHOICE 5

INVALID CHOICE SELECTED


MENU
1.INSERT
2.DELETE
3.PRINTQUEUE
4.EXIT
ENTER YOUR CHOICE 4

Page No:

Page No:

Page No:

Page No:

Page No:

Page No:

Page No:

Page No:

Page No:

You might also like