C&DS Lab Manual Updated
C&DS Lab Manual Updated
Department
Of
Computer Science & Engineering
C and Data Structures Lab manual
In-charge
Prepared by:
HOD
Approved &
Reviewed by:
Principal
Issued by:
w.e.f Date:
C & DS LAB
SUBJECT CODE
CS 05442
SEMESTER
STREAM
CSE
H.O.D
INDEX
S. No.
CONTENT
Guidelines to Students
References
There are 72 systems (HCL) installed in this Lab. Their configurations are as follows:
Processor
RAM
1 GB (DDR2)
Hard Disk
160 GB
Monitor
Mouse
Key Board
LAB CODE:
1
Equipment in the lab for the use of student community. Students need to maintain a
proper decorum in the computer lab. Students must use the equipment with care. Any
damage is caused is punishable.
Students are required to carry their observation / programs book with completed
exercises while entering the lab.
Students are supposed to occupy the machines allotted to them and are not supposed to
talk or make noise in the lab. The allocation is put up on the lab notice board.
Lab can be used in free time / lunch hours by the students who need to use the systems
should take prior permission from the lab in-charge.
Students are not supposed to use floppy disks, pen drives and CDs.
All the students must wear ID cards, leave their foot wear out side the lab and must
come with a formal dress code.
S No
1
2
3
4
5
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
S No
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Experiment 1:
a)To evaluate algebraic exp(ax+b)/(ax-b)
b)to Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt(2*x*y)
c)to evaluate the algebraic exp aepower-rt
d)to evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2
(a)
1) AIM: To evaluate algebraic exp(ax+b)/(ax-b)
2) ALGORITHM:
Step1: start
Step2: input a,b,x,s
Step3: s= (a*x+b)/(a*x-b)
Step4: Result s
Step 5: stop
3) FLOW CHART:
To evaluate algebraic exp (ax+b)/ (ax-b)
start
take a,b,x
a=5,b=4,x=3
R=(ax+b)/(ax-b)
display
stop
4) PROGRAM:
To evaluate algebraic exp(ax+b)/(ax-b)
main()
{
int a,b,x;
float s;
clrscr();
printf("enter the values of a,b,x...");
scanf("%d%d%d",&a,&b,&x);
s=(a*x+b)/(a*x-b);
printf("the value of s=%f",s);
}
5) Result:
Enter the values of a,b,x 1 3 2
The value of s=5
(b)
1) AIM: To Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt (2*x*y)
2) ALGORITHM:
Step1: start
Step2: input x,y,v
Step3: v=2.5*log(x)+cos(32*3.14/180)+mod(x*x-y*y)+sqrt(2*x*y)
Step4: Result v
Step 5: stop
3) FLOWCHART:
start
take x,y
x=1,y=1
R=2.5*logx+cos32+mod(x*x-y*y)+sqrt(2*x*y)
Display R
stop
4) PROGRAM:
To Evaluate algebraic exp 2.5logx+cos32+|x*x-y*y|+sqrt(2*x*y)
#include<math.h>
main()
{
float x,y,v;
clrscr();
printf("enter x and y values");
scanf("%f,%f",&x,&y);
v=2.5*log(x)+(cos(32*3.14/180))+mod(x*x-y*y)+sqrt(2*x*y);
printf("the value of v=%f",v);
}
5) Result:
Enter x and y values
10
20
The value of v=
c)
1) AIM: To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2
2) ALGORITHM:
Step1: start
Step2: input x,s
Step3:s=pow(x,s)+10*pow(x,4)+8*pow(x,3)+4*x+2
Step4: Result s
Step 5: stop*/
3) FLOWCHART:
To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2
start
take x
x=6
R==pow(x,s)+10*pow(x,4)+8*pow(x,3)+4*x+2
Display R
stop
4) PROGRAM:
To evaluate algebraic exp x power5 +10 x power 4+8 x power3+4x+2
#include<stdio.h>
#include<math.h>
main ()
{
float x,s;
printf("enter the values of x");
scanf("%f",&x);
s=pow(x,5)+10*pow(x,4)+8*pow(x,3)+4*x+2;
printf("the value of s=%f",s);
}
5) Result:
Enter the values of x
1
The value of s = 25
d)
1) AIM: To evaluate the algebraic exp ae power-rt
2) ALGORITHM:
step1: take a,k and t
step2: assign values for them
step3: here a*pow(e,-k*t) store this in 'r'
Display 'r'
step4: stop*/
3) FLOWCHART:
To evaluate the algebraic exp a epower-rt
start
take a,k,t
a=1,k=1,t=1
R=a*pow(e,-kt)
displayR
stop
4) PROGRAM:
To evaluate the algebraic exp aepower-rt
#include<stdio.h>
#include<math.h>
main()
{
int a,k,t;
float r;
printf("enterthree values");
scanf("%d%d%d",&a,&k,&t);
r=a*pow(e,-k*t);
printf("result=%f");
getch();
}
5) Result:
Enter values
1
2
3
Result=1.000000
6) Questions:
i) What is an Expression?
ii) What is the use of main( ) function?
iii) What are preprocessors of C?
iv) What is a variable?
7) Debugging:
1) undefined symbol a in function main( )
2) r is assigned a value which is never used
3) redeclaration of c in function main( )
3) FLOWCHART:
To evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c)
Start
take a,b,c,s,a
a=5,b=4,c=2
s=(a+b+c)/2
A=sqrt(s-a)(s-b)(s-c)
Display R
Stop
4) PROGRAM:
To evaluate area of triangle (sqrt(s(s-a)(s-b)(s-c)
#include<math.h>
void main()
{
int a,b,c;
float s,area;
clrscr();
printf("enter the values of a,b,c");
scanf("%d%d%d",&a,&b,&c);
s=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("the area of a trangle is =%f",area);
getch();
}
5) Result:
enter the values of a,b,c
10
20
30
The area of a trangle is = 0.000000
6) Questions:
i) What is the use of sqrt( ) function?
ii) Explain data types.
iii) Explain I/O Statements.
7) Debugging:
1) Function sqrt( ) should have a prototype
2) Unterminated string or character constant
3) Function call missing ) in function main
3) FLOWCHART:
Program to swap two numbers
start
take a,b
a=1,b=10
a=a+b;b=a-b;a=a-b
Display a and b
stop
4) PROGRAM:
Program to swap two numbers
void main()
{
int a,b;
clrscr();
printf("enter the values of a,b");
scanf("%d%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("the values of a,b are: %d %d",a,b);
getch();
}
5) Result:
Enter the values of a,b
10
2
The values of a,b are: 20 10
6) Questions:
i) What is the use of getch( ) function?
ii) What is the use of specifications of the data types?
3) FLOWCHART:
To Find Greatest of Two numbers.
Start
Take a,b
C= (a>b)? a:b
Display c
Stop
4) PROGRAM:
Prog:To find greatest of 2 numbers
void main()
{
int a,b,c;
clrscr();
printf("enter the values of a,b");
scanf("%d%d",&a,&b);
c=(a>b)?a:b;
printf("the biggest no is %d",c);
getch();
}
5) Result:
Enter the values of a,b
5
8
The biggest number is : 8
6) Questions:
1) What is an operators?
2) How many operators are there in C and List out them?
3) What is the difference between logical and conditional operators?
2) ALGORITHM:
Step1:start
Step2:input a,b,c
Step3:if(a>b) &&(a>c)
Step4:display a is grater
Step 5:else
Step6:if(b>c)
Step7: display b is grater
Step 8:else
Step: display c is grater
Step10:stop
3) FLOWCHART:
To find greatest among 3 numbers
Start
Take a,b,c
If
(a>b)&&(a>
c)
Display a
If (b>c)
Display b
Display c
Stop
4) PROGRAM:
Program to find greatest among 3 numbers
void main()
{
int a,b,c;
clrscr();
printf("enter the values of a,b and c");
scanf("%d%d%d",&a,&b,&c);
if(a>b && a>c)
printf("a is greatest of %d %d %d", a,b,c);
else
if(b>c)
printf("b is greatest of %d %d %d",a,b,c);
else
printf("c is gratest of %d %d %d",a,b,c);
getch();
}
5) Result:
Enter the values of a,b and c
10
30
20
30 is greatest of 10 30 20
6) Questions:
i) What are the conditional statements?
ii) How many conditional statements are there in C?
iii) What is the difference between conditional and multi-conditional statements?
2) ALGORITHM:
Step1:start
Step2:input a,b,c
Step3:if(a>b) &&(a>c)
Step4:if(b>c)
Step5:display a,b,c
Step6:else
Step7:display a,c,b
Step8:else if(b<c && b<a)
Step9:if(c<a)
Step10:print b,c,a
Step11:else
Step12:print b,a,c
Step13:else if(c<a && c<b)
Step14:if(a<b)
Step15:print c,a,b
Step16:else
Step17:print c,b,a
Step18:stop*/
3) FLOWCHART:
To Find greatest of Three no to print the given no in ascending order
Start
Take
a,b,c
If
(a>b && a>c)
If (b>c)
Display a,c,b
Display
a,b,c
If
(b<c
&&(b<a)
If
(c<
a)
Display b,c,a
Display b,a,c
If
C<a &&
c<b)
If
( a<b)
Display c,a,b
Stop
Display c,b,a
4) PROGRAM:
Program to find Gratest of 3 numbers to print the given no in ascending order
void main()
{
int a,b,c;
clrscr();
printf("enter the values of a,b and c");
scanf("%d%d%d",&a,&b,&c);
if(a<b && a<c)
{
if(b<c)
{
printf(" %d%d%d", a,b,c);
}
else
if(b>c)
printf(" %d%d%d",a,c,b);
}
else
if(b<c && b<a)
{
if(c<a)
printf(" %d%d%d",b,c,a);
else
printf("%d%d%d",b,a,c);
}
else
if(b<a)
printf("%d%d%d",c,b,a);
else
printf(%d%d%d",c,a,b);
}
}
5) Result:
Enter the values of a,b and c
6
4
5
456
3) PROGRAM:
Program to perform the arithmetic expression using switch statement
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b;
int op;
clrscr();
printf(" 1.addition\n 2.subtraction\n 3.multiplication\n 4.division\n");
printf("enter the values of a & b");
scanf("%d%d",&a,&b);
printf("enter your choice : ");
scanf("%d",&op);
switch(op)
{
case 1
:printf("sum of %d and %d=%d",a,b,a+b);
break;
case 2
:printf("difference of %d and %d=%d",a,b,a-b);
break;
case 3
:printf("multiplication of %d and %d=%d",a,b,a*b);
break;
case 4
:printf("Divisionn of two numbers is %d=",a/b);
break;
default
: printf(" Enter Your Correct Choice.");
break;
}
getch();
}
5) Result:
1. Addition
2. Substraction
3. Multiplication
4. Division
Enter your choice : 1
Enter a and b values 10 20
Sum of 10 and 20 = 30
3) FLOWCHART:
Program to find the factorial of a given number
Start
Take n
F=i=1
If
(i<=n
)
f=f*i; i=i+1
Display f
Stop
4) PROGRAM:
Program to find the factorial of a given number
void main()
{
int n,i,f;
f=i=1;
clrscr();
printf("enter a number");
scanf("%d",&n);
while(i<=n)
{
f*=i;
i++;
}
printf("the factorial of %d is %d",n,f);
getch();
}
5) Result:
Enter a number 5
The factorial of 5 is 120
6) Questions;
i)
ii)
iii)
Experiment 8:
number
3) FLOWCHART:
Program to generate prime number till nth number.
Start
Take n,i,j
i=1,
if i<n
j=1, fact=0
If
j<=n
If i%j=0
If
fact=2
Print i, j++
Print i
Stop
4) PROGRAM:
Program to generate prime number till nth number
void main()
{
int n,i,fact,j;
printf("enter the range");
scanf("%d",&n);
printf(Prime numbers are\n);
for(i=1;i<=n;i++)
{
fact=0;
for(j=1;j<=n;j++)
{
if(i%j==0)
fact++;
if(f==2)
printf("%d ,i);
}
getch();
}
5) Result:
Enter the range 10
Prime numbers are
3 5 7
2) Algorithm:
Step1: start
Step2: read n
Step3: i=0,sum=0
Step4: perform from step 5 to step 6 until i<=n
Step5: i++
Step6:sum+=i;
Step7: write sum
Step8: stop
3) Flow chart:
start
Read n
i=0;sum=0
F
While(i<=n) T
i++
Sum+=i
Write sum
stop
4) Program:
#include<stdio.h>
#include<conio.h>
main()
{
int n,i=0,sum=0;
clrscr( );
printf(Enter Limit : );
scanf(%d,&n);
while(i<=n)
{
i++;
sum+=i;
}
printf(Sum of %d natural numbers = %d,n,sum);
getch();
}
5) Result:
Enter Limit : 10
Sum of 10 natural numbers = 55
Experiment 10:
start
step2:
for i=0;i<20;i++
if(a[i]%2==0)
sum=sum+a[i];
step3:
stop
3) FLOWCHART:
Program to find total of even integers
Start
Take i, a[20],
sum
i=0
If
i<=20
If
(A[i]
%2==0)
Sum=sum+a[i],i++
I++
Display Sum
Stop
4) PROGRAM:
Program to find total of even integers
#include<stdio.h>
main()
{
int a[20],i,sum=0;
printf("enter5 integrs");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++)
{
if(a[i]==0)
sum=sum+a[i];
}
prinf("sum =%d",sum);
getch();
}
5) Result:
Entger 5 integers
24682
Sum = 22
3) FLOWCHART:
Program to find total of odd integers
Start
Take i, a[20],
sum
i=0
If
i<=20
If
(A[i]
%2==1)
Sum=sum+a[i],i++
I++
Display Sum
Stop
4) PROGRAM:
Program to find total of odd integers
#include<stdio.h>
main()
{
int a[20],i,sum=0;
printf("enter 5 integrs");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++)
{
if(a[i]==1)
sum=sum+a[i];
}
prinf("sum =%d",sum);
getch();
}
Enter 5 integers
12345
Sum=9
Experiment 12:
5) Result:
Enter any number 10
Sum = 30
3) FLOWCHART:
Program to find sum of all odd integers
Start
Take i, a[20],
sum
i=0
If
i<=20
If
(A[i]
%2==1)
Sum=sum+a[i],i++
i++
Display Sum
Stop
4) PROGRAM:
Program to find sum of all odd integers
void main()
{
int i,n,sum;
sum=0;
clrscr();
printf("enter any number");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%2!=0)
sum=sum+i;
}
printf("total no of even integer is %d",sum);
}
5) Result:
Enter any number 10
Sum = 25
3) FLOWCHART:
Program to print product of two matrices.
Start
Take a[3][3],b[3][3],c[3]
[3],i,j,k
I=0,j=0,k=0
If
i<=20
if
(i<n
if
j<n
Stop
For
(k=0;j<k.k+
+)
k++
j++
C[i][j]=c[i][j]+a[k][j]*b[i][k]
i++
Display c[i][j]
4) PROGRAM:
Program to print product of two matrices
#include<stdio.h>
void main()
{
int i,j,k,a[3][3],b[3][2],c[3][2];
printf("enter elements of matrix a");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
printf("enter elements of matrix b");
for(i=0;i<3;i++)
{
for(j=0;j<2;j++)
scanf("%d",&b[i][j]);
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
c[i][j]=0;
for(k=0;k<3;k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
printf("\t%d",c[i][j]);
}
printf("\n");
}
}
}
}
5) Result:
Enter the elements of matrix a
124521452
Enter the elements of matrix b
124521452
10
18
28
50
18
7
40
45
14
3) FLOWCHART:
Program to print Fibonacci series
Start
Take I, x, f, f1, f2
While
(i<=n)
I++,F1=f2;f2=f
F=f+f2
F=f+f2
Display F
Stop
4) PROGRAM:
Program to print Fibonacci series
void main()
{
int i,n,f,f1,f2;
printf("enter the range");
scanf("%d",&n);
f=0;
f1=1;
f2=1;
do
{
i++;
printf("%d\n",f);
f1=f2;
f2=f;
f=f1+f2;
}
while(i<=n);
}
5) Result:
Enter the range 9
0 1 1 2 3 5 8 13 21
16.2 ) 1
2 2
333
3 3
16.3 ) 1
22
333
16.4) 1
23
4 56
2) ALGORITHM:
step1:start
step2:take I,j and n
step3:for(i=1;i<n;i++)
for(j=0;j<i;j++)
{
printf(%d,i);
printf(\n);
}
step4: stop
3) FLOWCHART:
Program to print the following format
1
2
Start
Take I,j,n,i=1,j=1
If
i<n
If
j<n
Stop
Display i
Display \n
J++
I++
4) PROGRAM:
Program to print the following format
1
2
#include<stdio.h>
main()
{
int i,j,n;
printf(enter n value);
scanf(%d,&n);
for(i=0;i<=n;i++)
{
for(j=0;j<i;j++)
printf(%d,i);
printf(\n);
}
printf(\n);
}
5) Result:
1
2
Experiment 16.2 :
1) AIM: Program to print the following format
2) ALGORITHM:
1
2 2
3
4 4
3
4 4
step1: start
step2: take three integers i,j,n
step3: repeat step4 to step6 for i=1,i<=n,i++
step4: repeat step5 for j=1,j<=n,j++
step5: if j>=1 then
Display I and a space
Else
Display space
step6: transfer cursor to meet line by printing \n
step7: stop
3) FLOWCHART:
Program to print the following format
1
2
3
4
2
3
3
4
4
Start
Take i,j,n
For
(i=1;i<=n;i+
+)
If
(j>i)
Display i
Display \n
I++
Display \t
Display \n
Stop
4) PROGRAM:
Program to print the following format
1
2 2
3
4 4
3
4 4
#include<stdio.h>
main()
{
int i,j=0,n;
printf(enter n value);
scanf(%d,&n);
for(i=0;i<=n;i++)
{
if(j>=i)
printf(%d\t,i);
else
printf(\n);
}
printf(\t);
}
printf(\n);
}
5) Result:
1
2 2
3
4 4
3
4 4
Experiment 16.3 :
1) AIM: Program to print the following format
2) ALGORITHM:
1
2 2
3 3
step1: start
step2: take three integers i,j,k
step3: repeat step2 to step8 for i=1,i<=n,i++
step4: repeat step3 to step4 for k=1,k<=n-i,k++
step5: display blank space
step6: repeat step 5 to step7 for j=1,j<=I,j++
step7: display blank space
step8: take cursor to new line
step9: stop
3) FLOWCHART:
Program to print the following format
1
2 2
3 3
3
Start
Take i,j,n,k=0,j=1
If
I<n
K<n
Display \n
If
J<=i
Display\n
Display i
Stop
J++
I++
4) PROGRAM:
Program to print the following format
1
2 2
3 3
#include<stdio.h>
main()
{
int i,j,k,n;
printf(enter n value);
scanf(%d,&n);
for(i=0;i<=n;i++)
{
for(k=0;k<=n-i;k++)
{
printf( );
}
for(j=1;j<=i;j++)
{
printf( );
printf( i);
}
}
5) Result:
1
2 2
3 3
Experiment 16.4 :
1) AIM: Program to print the following format
2) ALGORITHM:
1
23
4 5 6
step1: start
step2: take three integers i,j,k,n and initialize k as 1
step3: repeat step4 to step7 for i=1,i<=n,i++
step4: repeat step5 to step6 for j=1,j<=i,j++
step5: display value of k
step6: increment k by 1
step7: transfer cursor to next line by printing \n
step8: stop
FLOWCHART:
Program to print the following format
1
2 3
4 5 6
Start
Take I=0,j=0,k
K=0
If
I<=n
if
j<=n
K=k+1
Display K
Display \n
J++
I++
Stop
PROGRAM:
Program to print the following format
1
2 3
4 5 6
#include<stdio.h>
main()
{
int i,j,k=1,n;
printf(enter n value);
scanf(%d,&n);
for(i=0;i<=n;i++)
{
for(j=0;j<=i;j++)
printf(%d\t,k++);
printf(\n );
}
}
5) Result:
1
23
4 5 6
Experiment 17:
3) FLOWCHART:
Program to read num of student data:
Start
Take n[20]
[20],r[20],s[20],I=0,j,n
If
I<n
I++
Stop
I=0
If
I<n
J=0
Display s[i][j]
If
I<n
J++
Balaji Institute
of Technology and Science
4) PROGRAM:
Program to read num of student data
#include<stdio.h>
#include<conio.h>
void main()
{
char n[20][10];
int i,j,r[20],s[20][6];
printf("enter n value");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("enter name,rollno,....");
scanf("%s%d",&n[i],&r[i]);
printf("enter 5 subject marks");
s[i][5]=0;
for(j=0;j<5;j++)
{
scanf("%d",s[i][j]);
s[i][5]=s[i][5]+s[i][j];
}
}
printf("the data entered is \n");
for(i=0;i<n;i++)
{
printf("%s\t%d\t",n[i],r[i]);
for(j=0;j<5;j++)
printf("%d\t",s[i][j]);
}
getch();
}
5) Result:
Enter name,rollno,.Eswar 20
Enter 5 subject marks
10 50 34 06 42
The data entered is
Eswar
20
10
50
34
06
42
Experiment 18.1 :
Experiment: Write a program to find factorial of a num using 3 types of functons
1) AIM: Program to find factorial of a given number
2) ALGORITHM:
step1:start
Step2:take a number n
Step3:read a number n
For(i=0;i<n;i++)
Factorial=fact*I;
Display num
Step4:stop
3) FLOWCHART:
Program to find factorial of a given number:Start
Take n
F=i=1
If
(i<=n
)
f=f*i; i=i+1
Balaji Institute of Technology and Science
Display f
Stop
4) PROGRAM:
Program to find factorial of a given number
#include<stdio.h>
#include<math.h>
void main()
{
clrscr();
printf("enter a number");
fact();
getch();
}
fact()
{
int i,fact=1,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fact=fact*i;
}
printf("\nfactorial of a given no is: %d ",fact);
return fact;
}
5) Result:
Enter a number 5
Factorial of a given no is: 120
Experiment 18.2 :
1) AIM: Program to find factorial of a given number
2) ALGORITHM:
step1: start
Step2: take a number I and fact=1
Step3: read a number n
For(i=0;i<n;i++)
Factorial=fact*i;
Display fact
Step4: stop
3) FLOWCHART:
program to find factorial of a given number
Start
Take n
Fact(n)
F=i=1
If
(i<=n
)
f=f*i; i=i+1
Stop
Display f
4) PROGRAM:
program to find factorial of a given number
#include<stdio.h>
#include<math.h>
void main()
{
clrscr();
printf("enter a number");
fact();
getch();
}
fact()
{
int i,fact=1,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fact=fact*i;
}
printf("\nfactorial of a given no is: %d ",fact);
return fact;
}
5) Result:
Enter a number 5
Factorial of a given no is: 120
2) ALGORITHM:
step1: start
Step2: take a string a function of return value data type is void str upper
Step3: read a string
While (s[i]! =\0)
{
if((s[i]>=a) &&(s[i]<=z))
s[i]=s[i]-32;
i++;
}
display changed string.
Step4: stop
3) FLOWCHART:
Program on function to scan a character string and convert lower case character to upper
case
Start
Take str,I,j,
While
S[i]!=\0
If
((S[i]>=a)
&& (s[i]>=z))
S[i]=s[i]-32
I++
Stop
4) PROGRAM:
Program on function to scan a character string and convert lower case character to upper
case
#include<stdio.h>
#include<conio.h>
void main()
{
char str;
printf("enter a string");
scanf("%s",str);
to_str_upper(char[]);
printf("changed to %s",str);
}
void to_str_upper(char[])
{
int i=0;
while(s[i]!='\0')
{
if((s[i]>='a') && (s[i]>='z'))
s[i]=s[i]-32;
i++;
}
}
}
5) Result:
Enter a string
gnec
changed to GNEC
3) FLOWCHART:
A program to extract a portion of character string and print extracted string
Start
Take
s[30],r[30],j=0,n
I=n-1
If
I<m+nm1
r[j]=s[i]
J++
Stop
I++
4) PROGRAM:
Program to extract a portion of character string and print extracted string
#include<stdio.h>
void main()
{
char s[30],r[30];
int i,j,m,n;
clrscr();
printf("enter a string");
gets(s);
printf("enter the values of m n");
scanf("%d%d",&m,&n);
j=0;
for(i=n-1;i<m+n-1;i++)
{
r[j]=s[i];
j++;
}
printf("the extract part of string %s: ",r);
getch();
}
5) Result:
Enter a string
Gurunanak
Enter the values of m,n
35
The extract part of string: run
2) ALGORITHM:
step1:start
Step2:enter 5 city names
Step3:take I and j loop variables
For(i=65;i<122;i++)
{
for(j=0;j<5;j++)
{
if(city[j][0]==i)
printf(\n%s,city[j]);
}
}
Step4:stop
3) FLOWCHART:
A program to read five cities and sort them and
Print sorted list of citied in alphabetical order
Start
I=0
If
(i<5)
I++
if
I<122
J=0
if
j<5
Stop
If
(City[j]
[0]==i)
Display city[j]
J++]
I++
4) PROGRAM:
A program to read five cities and sort them and print sorted list of citied in alphabetical
order
#include<stdio.h>
#include<conio.h>
void main()
{
ch city[5][20];
int I,j;
clrscr();
printf("enter the names of cities...\n\n");
for(i=0;i<5;i++)
scanf("%s",&city[i]);
printf("sorted list of cities...\n\n");
for(i=65;i<122;i++)
{
for(j=0;j<5;j++)
{
if(city[j][0]==i)
printf("\n%s",city[j]);
}
}
}
5) Result:
Enter the names of cities
Hyd Chennai Bombay goa vizag
Sorted list of cities
Bombay
Chennai
Goa
Hyd
vizag
Experiment 22: Write a program to find the factorial of a number using recursion
1) AIM: Program to find the factorial of a number using recursion
2) ALGORITHM:
step1: start
Step2: enter f and n
Step3: read a number n
F=factorial (n);
Step4: inside the functional(x) define a local variable x
If(x==l)
Return (l);
Else
Fact=x*factorial(x-l);
Return(fact);
Step5: stop
3) FLOWCHART:
To find the factorial of a number using recursion
Start
Take n
Fact(n)
Display f
F=i=1
If
(i<=n
)
Stop
f=f*i; i=i+1
4) PROGRAM:
To find the factorial of a number using recursion
#include<stdio.h>
main()
{
int f,n;
clrscr();
printf("enter n");
scanf("%d",&n);
f=factorial(n);
printf("%d",f);
getch();
}
factorial(x)
{
int i,fact=1;
if(x==1)
return(1);
else
fact=x*factorial(x-1);
return(fact);
}
5) Result:
Enter n 4
24
start
Step2:
declare a
Step3:
print &a
Step4:
stop
3) Flowchart:
start
Declare a
Print &a
stop
4) Program:
#include<stdio.h>
#include<conio.h>
main( )
{
int a;
clrscr();
printf(Address of a = %u,&a);
getch();
}
5) Result:
Address of a =64453
Experiment 24: program to illustrate accessing the value of variable using pointers
using arithmetic operations
1) AIM: program to illustrate accessing the value of variable using pointers using
arithmetic operations
2) ALGORITHM:
step1: start
step2: take a,b,x,y,z and two pointers variables *p1,*p2
step3: assign values to these variables
p1=&a;
p2=&b;
x=*p1*p2-6;
y=(4*-*p2)/(*p1+10);
display x and y
step4:*p2=*p2+3
*p1=*p2-5;
z=*p1*p2-6;
display a,b and z
step5: stop
3) FLOWCHART:
A program to illustrate accessing the value of variable using pointers using
arithmetic operations
Start
a=12,b=4
P1=&a,p2=&b
X=*p1*p2-6
Y=(4-*p2)/*p1+10
Display p1,p2,a,b,x,y
*p2=*p2+3,*p1=*p2-5
Z=*p1*p2-6
Display a,b,z
Stop
4) PROGRAM:
A program to illustrate accessing the value of variable using pointers using
arithmetic operations
#include<stdio.h>
main()
{
int a,b,*p1,*p2,x,y,z;
clrscr();
a=12,b=4;
p1=&a; p2=&b;
x=*p1**p2-6;
y=(4-*p2)**p1+10;
printf("addressof a=%d\n",p1);
printf("addressof b=%d\n",p2);
printf("a=%d,b=%d\n",a,b);
printf("x=%d,y=%d\n",x,y);
*p2=*p2+3; *p1=*p2-5;
z=*p1**p2-6;
printf("a=%d,b=%d\n",a,b);
printf("z=%d\n",z);
getch();
}
5) Result:
Address of a = 65543
Address of b = 64455
a = 12 b = 4
z=42
3) FLOWCHART:
A program to illustrate the address of a variable using various methods
Start
a=a,x=125,p=10.25
, q=18.76
Display a, &a
Display x, &x
Display p, &p
Display q, &q
Z=*p1*p2-6
Stop
4) PROGRAM:
A program to illustrate the address of a variable using various methds
#include<stdio.h>
main()
{
char a;
int x;
float p,q;
clrscr();
a='a';
x=125;
p=10.25,q=18.76;
printf("%c is stored at address %u\n",a,&a);
printf("%d is stored at address %u\n",x,&x);
printf("%f is stored at address %u\n",p,&p);
printf("%f is stored at address %u\n",q,&q);
getch();
}
5) Result:
a is stored at address 65525
125 is stored at address 65522
10.250000 is stored at address 65518
18.760000 is stored at address 65514
3) FLOWCHART:
A program to print the elements of array using pointers
Start
If
I<5
Display *(p+i)
Display (p+i)
I++
Stop
4) PROGRAM:
Program to print the elements of array using pointers
#include<stdio.h>
main()
{
int a[5]={5,4,6,8,9};
int *p=&a[0];
int i;
clrscr();
for(i=0;i<5;i++)
printf("%d",*(p+i));
for(i=0;i<5;i++)
printf(" %u\n",(p+i));
getch();
}
5) Result:
12345
12345
3) FLOWCHART:
A program to implement call by references
Start
Take a=10,b=20
C=add (&a,&b)
Z=*x+*y
Stop
Return (z)
4) PROGRAM:
A program to implement call by refers
#include<stdio.h>
main()
{
int a=10,b=20,c;
clrscr();
c=add(&a,&b);
printf("%d",c);
getch();
}
add(int *x,int *y)
{
int z;
z=*x+*y;
return(z);
}
5) Result:
30
3) FLOWCHART:
A program to find greatest of numbers functions and pointers
Start
Take a[10],i=0,n,l
If
I<n
Read a+I
I++
L=max(a,n)
Max(int *arr,int s)
Display L
I=o
Stop
If
I<n
If
(i==0||
(arr+i)
Max=*(arr+i)
I++
Return (max)
4) PROGRAM:
A program to find greatest of numbers functions and pointers
#include<stdio.h>
main()
{
int a[20],i,n,l;
clrscr();
printf("enterthe no.ofelements: ");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
l=max(a,n);
printf("the largest num is: %d",l);
getch();
}
int max(int*arr,int s)
{
int max,i;
for(i=0;i<;i++)
if(i==0||max<*(arr+i))
max=*(arr+i);
return (max);
}
5) Result:
Enter number of elements 3
564
The largest number is 6
3) FLOWCHART:
A program to print the elements of a structure using pointers
Start
Take product[3],*ptr
If
Ptr<product
+3
Ptr=product
while
Ptr<product
+3
Display ptr->name,Ptr=>number,
ptr->price
Ptr ++
Start
100
4) PROGRAM:
A program to print the elements of a structure using pointers
#include<stdio.h>
struct invest
{char name[20];
int number;
float price;};
main()
{
struct invest product[3],*ptr;
clrscr();
printf("input\n\n");
for(*ptr=product[3];ptr<product+3;ptr++)
scanf("%s%d%f",ptr->name,&ptr->number,&ptr->price);
printf("\nResult \n\n");
ptr=product;
while(ptr<product+3)
{
printf("%20s%5d%10.2f\n",ptr->name,ptr->number,ptr->price);
ptr++;
}
getch();
}
101
FLOWCHART:
A program to display student information by initializing structures
Start
Struct Student
Stop
102
PROGRAM:
A program to display student information by initializing structures
#include<stdio.h>
struct student
{
char name[10];
int rollno;
int age;
};
main()
{
static struct student s1;
clrscr();
printf("enter the name,rollno,age");
scanf("%s%d%d\n",&s1.name,&s1.rollno,&s1.age);
printf("%s %d %d",s1.name,s1.rollno,s1.age);
getch();
}
5) Result:
Ente name, rollno,age
Ravi 11 25
Ravi 11 25
103
104
Start
FLOWCHART:
A program to find the total no. of marks
Struct student s
If
I<n
S[i].total=0
J=0
If
j<5
S[i]=s[i].total+s[i].subject[j]
J++
Display Total
I++
Start
105
PROGRAM:
A program to find the total no. of marks
#include<stdio.h>
struct student
{
char name[10];
int rollno;
int subject[5],total;
};
main ( )
{
static struct student s[100];
int n,i,j;
clrscr();
printf("enter the no.of students");
scanf("%d",&n);
printf("enter the marks of fivesubjects");
for(i=0;i<n;i++)
{
printf("enter s[%d] student marks",i);
s[i].total=0;
for(j=0;j<5;j++)
{
scanf("%d",&s[i].subject[j]);
s[i].total=s[i].total+s[i].subject[j];
}
printf("%d",s[i].total);
}
}
Balaji Institute of Technology and Science
106
5) Result:
enter the no.of students2
enter the marks of fivesubjectsenter s[0] student marks1
2
3
4
5
15enter s[1] student marks12
32
14
15
65
138
107
Experiment 31: Program to find the salary of employee and salary details
1) AIM: Program to find the salary of employee and salary details
2) ALGORITHM:
step1: take a character array of name, an id inside the structure
step2: take another structure of inside the structure name that salary take, basic, pf, hra,
da, gross
step3: enter the name, id of an employee and read these
step4: use dot operator to access these variables
step5: display gross salary
step6: stop
108
3) FLOWCHART:
A program to find the salary of employee and salary details
Start
Struct employee e1
Struct salary s1
E1.s1.hra=15%*basic
E1.s1.da=45%*basic
E1.s1.gross=e1.s1.basic+e1.s1.hra
+e1.s1.da+e1.s1.pf
Stop
109
4) PROGRAM:
A program to find the salary of employee and salary details
#include<stdio.h>
struct employee
{
char name[10];
int id;
struct salary
{
int basic,pf;
float hra,ta,da,gross;
}s1;
}e1;
main()
{
printf("enter name & id of emp");
scanf("%s%d",&e1.name,&e1.id);
printf("enter salary of emp");
scanf("%d%f%f%d",&e1.s1.basic,&e1.s1.hra,&e1.s1.da,&e1.s1.pf);
e1.s1.hra=15% * basic;
e1.s1.da=45%*basic;
e1.s1.gross=e1.s1.basic+e1.s1.hra+e1.s1.da+-e1.s1.pf;
printf("%s\n%d",e1.name,e1.s1.gross);
printf("\n%d\n%f\n%d\n%f\n",e1.s1.basic,e1.s1.hra,e1.s1.da,e1.s1.pf,e1.s1.gross);
}
110
5) Result:
Enter name and id of emp
Eswar
101
Enter salary of Emp
5000
Gross salary : 8000
111
2) ALGORITHM:
step1: take a structure ex2
step2: inside the structure declare 6 integers
step3: declare structureex2 as s1
step4: declarestruture ex2 as s2,ex2 as fun();
step5: display the message enter the marks
step6: take value of the subjects from the user
step7: store the return value in s2.total
step8: print the value of s2.total
step9: stop
112
3) PROGRAM:
A program to pass structure as arguments to function And calculate total marks of
5 students
#include<stdio.h>
struct ex2
{
int m1,m2,m3,m4,m5,total;
};
main()
{
struct ex2 s1;
struct ex2 s2;
struct ex2 fun();
printf("enter the marks");
scanf("%d%d%d%d%d",&s1.m1,&s1.m2,&s1.m3,&s1.m4,&s1.m5);
s2=fun(s3);
printf("%d",s1.total);
}
struct ex2 fun(s3)
struct ex2 s3;
{
s3.total=s3.m1+s3.m2+s3.m3+s3.m4+s3.m5;
return(s3);
}
4) Result:
Enter the marks
10 20 30 40 50
150
113
Experiment 33: Program to display college address using pointers and structures
1) AIM: Program to display college address using pointers and structures
2) ALGORITHM:
step1: take name, location and city for the college
step2: take a pointer variable & address of the college
step3: p->name={''gnec''}
p->location={"ibrahimpatnam"}
p->city={"rr dist"}
step4: display p->name,p->location,p->city
step5: stop
114
3) PROGRAM:
A program to display college address using pointers and structures
#include<stdio.h>
struct college address
{
char name[20],location[20],city[20];
};
main()
{
struct college address add,*ptr;
p=&add;
p->name={"gnec"};
p->location={"ibrahimpatnam"};
p->city={"rr dist"};
printf("%s%s%s",p->name,p->location,p->city);
}
4) Result:
Gnec ibrahimpatnam rr dist
115
Experiment 34:
1) AIM: Program to write data file and read data from file
2) ALGORITHM:
step1: start
step2: take a character ch and define a file pointer f2
step3: open a file data.dat for writing
step4: while ((ch=getch()!=eof)
read a character ch
step5: close the file data.dat
step6: open the same file for reading
while((ch=get(f2)!=EOF)
display charecter on monitor
step7: close the data.dat
step8:stop
116
3) FLOWCHART:
Start
While
((Ch==g
etchar()
)!=EOF)
Putc(ch,f2)
Close (f2)
While
((Ch==
getc())!
==EOF)
Close (f2)
Stop
117
4) PROGRAM:
A program to write data file and read data from file
#include<stdio.h>
main()
{
charch;
FILE *f2;
f2=fopen("data.dat","w");
while((ch=getchar())!=EOF)
putc(ch,f2);
fclose(f2);
f2=fopen("data.dat","r");
while((ch=getc(f2))!=EOF)
putchar(ch);
fclose(f2);
}
5) Result:
Gurunanak Engineering College, Ibrahimpatnam, RR Dist.
Gurunanak Engineering College, Ibrahimpatnam, RR Dist.
118
Experiment 35:
Program to write integer data into file and read it from file
1) AIM: Program to write integer data into file and read it from file
2) ALGORITHM:
step1: start
step2: take a number and define a file pointer
step3: open a file data.dat for writing
step4: read on integer and also read aninter into file
step5: close the file data.dat
step6: open the same file for reading
display an integer
step7: stop
119
3) FLOWCHART:
A program to write integer data into file and read it from file
Start
FILE *f2
Read num
Putw( num,f2)
Close (f2)
Num=getw(f2)
Display Num
Close (f2)
Stop
120
4) PROGRAM:
A program to write integer data into file and read it from file
#include<stdio.h>
main()
{
int num;
FILE *f2;
f2=fopen("data.int","w");
scanf("%d",&num);
putw(num,f2);
fclose(f2);
f2=fopen("data.int","r");
num=getw(f2);
printf("%d",num);
fclose(f2);
}
5) Result:
12
12
121
122
3) PROGRAM:
A program to write product details
#include<stdio.h>
main()
{
char c[20];
int p,q,b;
FILE *f2;
f2=fopen("data.dat","w");
printf("enter item name,price,quality");
scanf("%s%d%d",&c,&p,&q);
b=p*q;
printf("%s%d%d%d",c,p,q,b);
fclose(f2);
}
5) Result:
Enter item name, price, quality
Rice 25 1
Rice 25 1 25
123
FLOCHART:
A program to write product details
Start
FILE *f2
Enter name,price,quality
b=p*q
Display c,p,q.b
Close (f2)
Stop
124
125
Start
3) FLOWCHART:
FILE *f2
I=0
If
I<argc
Close (f2)
I=0
If
I<argc
Close (f2)
Stop
126
4) PROGRAM:
Program to use command line arguments in files
#include<stdio.h>
main(argc,argv)
{
char word[10],*argv[];
int i,argc;
FILE *f2;
f2=fopen("command.dat","w");
for(i=1;i<argc;i++)
fprintf(fp,"%s",argv[i]);
fclose(fp);
f2=fopen("command.dat","r");
for(i=1;i<argc;i++)
{
fscanf(fp,"%s",word);
}
fclose(fp);
}
127
128
3) PROGRAM:
Stack operations using arrays
#include<stdio.h>
#define max 10
void push();
void pop();
void display();
int s[max];
int top=0;
void main()
{
char ch;
int choice;
do
{
printf("enter choice of operation");
printf("1.push(),2.pop(),3.display()");
scanf("%d",&choice);
switch(choice)
{
case1:
push();
break;
case2:
pop();
break;
case3:
display();
Balaji Institute of Technology and Science
129
break;
default:
printf("invalid option");
}
printf("do u wantto continue y/n");
fflush(stdin);
scanf("%c",&ch);
}
while(ch=='y'||ch=='y')
}
void push()
{
int item;
if(top>=max)
printf("stackisfull");
else
{
printf("enter any item");
scanf("%d",&item);
top++;
s[top]=item;
}
}
void pop()
{
int item;
if(top==0)
printf("stack is empty");
130
else
{
item=s[top];
printf("the related elemnt is %d",item);
top--;
}
}
void display()
{
int item;
int i;
if(top==0)
printf("\n stack is empty no element isdisplayed");
else
{
printf("\n%d\n",s[i]);
printf("\n----\n");
}
}
131
5) Result:
enter choice of operation1.push(),2.pop(),3.display()1
enter any item3
do u wantto continue y/ny
enter choice of operation1.push(),2.pop(),3.display()1
enter any item4
do u wantto continue y/ny
enter choice of operation1.push(),2.pop(),3.display()3
15150
132
step2:[delete element]
y<-q(f)
step3:[queue empty]
if ]<-r<-0
return(y)
Balaji Institute of Technology and Science
133
134
3) PROGRAM:
Program to implement Queue operations using arrays
#include<stdio.h>
#define max10
void insert();
void delete();
void display();
int cq[max];
int front=0,rear=0;
void main()
{
int choice;
char ch;
do
{
printf("enter choice for circular queue");
printf("1-insert()
2-delete()
3-display()");
scanf("%d",&choice);
switch(choice)
{
case 1:
insert();
break;
case 2:
delete();
break;
case 3:
Balaji Institute of Technology and Science
135
display();
break;
default:
printf("invalid option");
break;
}
printf("do u wantto continue y/n");
fflush(stdin);
scanf("%c",&ch);
}
while(ch=='y'||ch=='y');
}
void insert()
{
int item;
if(rear==max)
rear=1;
else
error++;
if(front==rear)
printf("queue overflow");
else
{
printf("enter any item");
scanf("%d",&item);
cq[rear]=item;
}
if(front==0)
front=1;
Balaji Institute of Technology and Science
136
}
void delete()
{
int item;
if(front==0)
printf("queue underflow");
else
{
item=cq[front];
printf("the deleted element id %d",item);
}
if(front==rear)
{
front=0;
rear=0;
return;
}
if(front==max)
front=1;
else
front=front+1;
}
void dispaly()
{
int i;
if(front==0)
printf("no element inthe queue");
else
{
if(front<rear)
Balaji Institute of Technology and Science
137
for(i=front;i<=rear;i++)
{
printf("%d",q[i]);
}
else
for(i=front;i>rear;i--)
printf("%d",q[i]);
}
}
5) Result:
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 14
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 15
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 20
1) Insert 2) Delete 3) Display
Enter choice for circular queue 3
14 15 20
138
Experiment 40:
139
post[j]='\0';
printf("The Postfix Expression is.....\n");
puts(post);
getch();
}
int prec(char y)
{
int k;
switch(y)
{
case '+':k=1;
break;
case '-':k=1;
break;
case '*':k=2;
break;
case '/':k=2;
break;
case '^':k=3;
break;
case '(':k=0;
break;
}
return(k);
}
void push(char item)
{
if(top==MAX)
{
printf("OverFlow");
return;
}
else
{
top=top+1;
stack[top]=item;
}
return;
}
char pop(char item)
{
if(top==-1)
{
printf("Underflow");
return;
}
else
{
Balaji Institute of Technology and Science
140
item=stack[top];
top=top-1;
return item;
}
}
4) Result:
Enter the Infix Expression:((A+B)*(C-D)/((E+F)*(G-H)
The Expected OutPut is...ABCDEFGH/*+-*+The Postfix Expression is:AB+CD-*EF+GH-*
141
142
143
3) Result: 1
1.Enter the Postfix expression 654*+
The value of the Postfix expressin is: 26
Result: 2
2.Enter the Postfix expression is 6589+-*
The vlaue of the Postfix expression is: -72 */
144
145
3) PROGRAM:
Program to implement Prefix evaluation
#include<stdio.h>
#include<conio.h>
int st[100];
int st_top=-1;
int cal(char post[]);
void in_post(char in[]);
void push_item(int it);
int pop_item();
int st_ISP(char t);
int st_ICP(char t);
/*main function*/
void main()
{
char in[100],post[100];
clrscr();
printf("\n\tEnter the Infix Expression: ");
gets(in);
in_post(in);
getch();
}
/*end main*/
void push_item(int it)
{
if(st_top==99)
{
printf("\n\n\t*STACK is Full*");
getch();
exit(1);
}
st[++st_top]=it;
}
int pop_item()
{
int it;
if(st_top==-1)
{
getch();
}
return(st[st_top--]);
}
/*Function for converting an infix expression to a postfix expression. */
void in_post(char in[])
Balaji Institute of Technology and Science
146
{
int x=0,y=0,z,result=0;
char a,c, post[100];
char t;
push_item('\0');
t=in[x];
while(t!='\0')
{
if(isalnum(t))
/*For checking whether the value in t is an alphabet or number. */
{
post[y]=t;
y++;
}
else if(t=='(')
{
push_item('(');
}
else if(t==')')
{
while(st[st_top]!='(')
{
c=pop_item();
post[y]=c;
y++;
}
c=pop_item();
}
else
{
while(st_ISP(st[st_top])>=st_ICP(t))
{
c=pop_item();
post[y]=c;
y++;
}
push_item(t);
}
x++;
t=in[x];
}
while(st_top!=-1)
{
c=pop_item();
post[y]=c;
y++;
}
printf("\n\tThe Postfix Expression is:");
for(z=0;z<y;z++)
Balaji Institute of Technology and Science
147
printf("%c",post[z]);
printf("\n\nDo you want to evaluate the Result of Postfix Expression?(Y/N):");
scanf("%c",&a);
if(a=='y' || a=='Y')
{
result=cal(post);
printf("\n\n\tResult is: %d\n",result);
getch();
}
else if(a=='n' || a=='N')
{
exit(0);
}
}
/*Determining priority of inside elements*/
int st_ISP(char t)
{
switch(t)
{
case '(':return (10);
case ')':return (9);
case '+':return (7);
case '-':return (7);
case '*':return (8);
case '/':return (8);
case '\0':return (0);
default: printf("Expression is invalid.");
break;
}
return 0;
}
/*Determining priority of approaching elements*/
int st_ICP(char t)
{
switch(t)
{
case '(':return (10);
case ')':return (9);
case '+':return (7);
case '-':return (7);
case '*':return (8);
case '/':return (8);
case '\0':return (0);
default: printf("Expression is invalid.");
break;
}
return 0;
}/*Evaluating the result of postfix expression*/
Balaji Institute of Technology and Science
148
4) Result:
Enter the Infix Expression: a+b*c
The Postfix Expression is: abc*+
Do you want to evaluate the Result of Postfix Expression?(Y/N):
149
150
print(list->next);
}
return;
}
int count(node *list)
{
if(list->next==null)
return(0);
else
return(1+count(list->next));
}
node insert(node *head)
{
node *find(node *p,int a);
node *new,*n1;
int key,x;
printf("enter value of new item\n");
scanf("%d",&x);
printf("value of key item before which item is inserted?-999 if it is lost");
scanf("%d",&key);
if(head->number==key)
{
new=(node*)malloc(sizeof(node));
new->number=x;
new->next=head;
head=new;
}
else
{
Balaji Institute of Technology and Science
151
n1=find(head,key);
if(n1==null)
printf("key is not found");
else
{
new=(node*)malloc(sizeof(node));
new->number=x;
new->next=n1->next;
n1->next=new;
}
}
return(head);
}
node *find(node *list,int key)
{
if(list->next->number==key)
return(list);
else
if(list->next->next==null)
return(null);
else
find(list->next,key);
}
node *delete(node *head)
{
node *find(node *p,int a);
int key;
node *n1,*p;
printf("enter the num to be deleted");
Balaji Institute of Technology and Science
152
scanf("%d",&key);
if(head->number==key)
{
p=head->next;
free(head);
head=p;
}
else
{
n1=find(head,key);
if(n1==null)
printf("\nkey not found");
else
{
p=n1->next->next;
free(n1->next);
n1->next=p;
}
}
return(head);
}
153
5) Result:
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 14
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 15
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 20
1) Insert 2) Delete 3) Display
Enter choice for circular queue 3
14 15 20
154
155
printf("1.traverse\n");
printf("2.insert\n");
printf("3.delete\n");
while(ch=='y')
{
printf("enter u rchoice\n");
scanf("%d",&choice);
switch(choice)
{
case1:printf("the element in the list are\n");
traverse();
break;
case2:insert();
break;
case3:delete();
break;
}scanf("%c",&ch);
}
}
voidcreate()
{
int no;
struct node *temp;
printf("enter the num \n");
scanf("%d",&no);
temp=(struct node*)malloc(sizeof(struct(node));
temp->lptr=null;
156
temp->info=no;
temp->rptr=null;
if(head==null)
{
head=temp;
current=temp;
}
Else
{
current->rptr=temp;
temp->lptr=current;
current=temp;
}
}
voidtraverse()
{
struct node *t1=head;
if(t1==null)
printf("\n");
else
for(;t1!=null;t1->rptr)
{
printf("5d\n",t1->info);
}
}
void insret()
{
157
struct node*t2=head;
int no,p,option;
if(t2==null)
{
printf("no elements is in linkedlist");
printf("pleaseinsert into any elemnets in the linkedlist\n");
exit();
}
else
{
printf("enter the no to insert \n");
scanf("%d",&no);
printf("1.insert at begining \n");
printf("2.insert at end \n");
printf("3.insert at middle \n");
printf("enter u r option \n");
scanf("%d",&option);
new=(struct node*)malloc(sizeof(struct(node));
new->lptr=null;
new->info=no;
new->rptr=null;
switch(option)
{
case1:
new->lptr=t2;
new->lptr=new;
head=new;
break;
Balaji Institute of Technology and Science
158
case2:
for(;t->rptr!=null;t2=t2->rptr)
new->lptr=t2;
t2->rptr=new;
break;
case3:
printf("enter the elements after which u want to insert \n");
scanf("%d",&p);
for(;t2!=null && t2->info!=p;t2=t2->rptr)
if(t2=null)
{
printf("elements not found \n");
}
else
{
new->rptr=t2->rptr;
t2->rptr->lptr=new;
t2->prtr=new;
new->lptr=t2;
}
break;
}
}
}
void delete()
{
int flag=0,ele;
struct node *t3=head;
if(t3==null)
{
Balaji Institute of Technology and Science
159
printf("\n noelemnet");
exit();
}
else
{
printf("enter the elemt to be deleted");
scanf("%d",&ele);
while(t3!=null)
{
if(t3->info==ele)
{
flag=1;
if(t3==head)
{
head=t3->rptr;
head->rptr=null;
free(t3);
}
else
{
if(t3->rptr!=null)
{
t3->lptr=t3->rptr;
t3->rptr=t3->lptr;
free(t3);
}
else
{
t3->lptr->rptr=null;
free(t3);
Balaji Institute of Technology and Science
160
}
}
}
t3=t3->ptr;
}
if(flag==0)
{
printf("element not found\n");
}
}
}
161
3) Result:
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 14
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 15
1) Insert 2) Delete 3) Display
Enter choice for circular queue 1
Enter any item 20
1) Insert 2) Delete 3) Display
Enter choice for circular queue 3
14 15 20
162
163
164
4) Result:
enter the max no.of elements u wanna sort
5
enter the elements u want to sort
10 20 15 6 40
6 10 15 20 40
165
166
3) PROGRAM:
Program to implement Selection sort
#include<stdio.h>
main()
{
int a[10],i,j,temp,n;
int min,loc;
clear();
printf("\n enter the max no.of elements u wanna sort \n");
scanf("%d",&n);
printf("\n enter the elements u want to sort \n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
min=a[i];
loc=1;
for(j=i+1;j<=n;j++)
{
if(min>a[j])
{
min=a[j];
loc=j;
}
}
}
temp=a[i];
a[i]=a[loc];
a[loc]=temp;
Balaji Institute of Technology and Science
167
}
for(i=0;i<n;i++)
{printf("%d\t",a[i]);
}
getch();
}
4) Result:
enter the max no.of elements u wanna sort
5
enter the elements u want to sort
10 20 15 6 40
6 10 15 20 40
168
169
}
a[p+1]=temp;
}
for(i=1;i<=n;i++)
{
printf("%d\t",a[i]);
} getch();}
4) Result:
Enter the max no.of elements u want to sort
5
Enter the elements u want to sort
10 20 15 6 40
6 10 15 20 40
170
2) ALGORITHM:
step1: take first a list of unsorted values
step2: take firstelement as 'pivot'
step3: keep the firstelement as 'pivot' and correct its position in the list
step4: divide the list into two based on first element
step5: combine the list
3) PROGRAM:
Program to implement Quick sort
#include<stdio.h>
main()
{
int a[10],i,left,right,n;
int min,loc;
clear();
printf("\n enter the max no.of elements u wanna sort \n");
scanf("%d",&n);
printf("\n enter the elements u want to sort \n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
left=0;
right=n-1;
quicksort(a,left,right);
display(a,n);
}
171
172
quicksort[a,i,right];
}
}
display(int a[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d\t",a[i]);
}
getch();
}
4) Result:
enter the max no.of elements u wanna sort
5
enter the elements u want to sort
10 20 15 6 40
6 10 15 20 40
173
174
Experiment 49:
1) AIM:
2) PROGRAM:
Program to implement Heap sort
#include<stdio.h>
main()
{
int a[10],i,j,n;
int min,loc;
clear();
printf("\n enter the max no.of elements u wanna sort \n");
scanf("%d",&n);
printf("\n enter the elements u want to sort \n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
heapsort(a,n);
display(a,n);
}
heapsort(inta[],int n)
{
int temp,i,key,q;
create heap(a,n);
for(q=n;q>2;q--)
{
temp=a[i];
a[i]=a[q];
175
a[q]=temp;
i=1;
key=a[1];
j=2;
if((j+1)<q)
if(a[j+1]>a[j])
j++;
while(j<=(q-1) && a[j]<key))
{
a[i]=a[j];
i=j;
j=2*i;
if((j+1)<q)
if(a[j+1]>a[j])
j++;
else
if(j>n)
j=n;
a[i]=key;
}
}}
3) Result:
enter the max no.of elements u wanna sort
5
enter the elements u want to sort
10 20 15 6 40
6 10 15 20 40
176
177
3) Result:
enter the max no.of elements u wanna sort
5
enter the elements u want to sort
12345
enter the value to be searched
3
search is successful
the elemnts is 3
178
179
printf(search is unsucessful");
}
getch();
}
3) Result:
Enter number of elements : 5
Enter 5 elements
15 35 62 45 11
enter the value to be seached
62
62 element is found at location 3
180
TEXT BOOKS:
1. C AND Data Structures P. Padmanabhan, BS Publications.
2. C & Data structures Ashok N.Kanthane, Person Education.
REFERENCES:
1. Programming with ANSI and Turbo C Ashok N.Kamthane
2. Programming in ANSI C E. Balagurusamy
3. Let Us C - Yaswanth Kanethkar
4. C & Data Structures Prof. P.S.Desh Pande, Prof. O.G.Kakde, Wiley Dreamtech
Pvt.Ltd
5. Data Structures Using C A.S.Tenenbum, PHI/Person Education.
6. The C Programming Language B.W.Kernighan,Dennis M.Richie, PHI/ Person
Education.
181