Problem Solving Using c
Problem Solving Using c
FLOWCHART:
Page | 1
PROGRAM:
#include<stdio.h>
int main( )
{
int a,b,c;
int sum,average;
printf("Enter any three integers: ");
scanf("%d%d %d",&a,&b,&c);
sum = a+b+c;
average=sum/3
printf("Sum and average of three integers: %d %d",sum,average);
return 0;
}
INPUT:
Enter any three integers: 2 4 5
OUTPUT:
Sum and average of three integers: 11 3
Page | 2
2. Write a C program to find the sum of individual digits of positive
integer.
ALGORITHM:
Step 1: Start
Step 2: Read n
Step 3: Initialize sum ← 0
Step 4: while(n!=0)
Begin
Step 5: r←n%10
Step 6: sum←sum+r
Step 7: n←n/10
End
Step 8: Print “sum”
Step 9: Stop
FLOWCHART:
Page | 3
PROGRAM:
#include<stdio.h>
#include<conio.h>
void main( )
{
int n,r,sum=0;
clrscr( );
printf("ENTER A POSITIVE INTEGER \n");
scanf("%d",&n);
while(n!=0)
{
r=n%10;
sum=sum+r;
n=n/10;
}
printf("THE SUMOF INDIVIDUAL DIGITS OF A POSITIVE INTEGER
IS..%d",sum);
getch( );
}
INPUT:
ENTER A POSITIVE INTEGER
5321
OUTPUT:
THE SUM OF INDIVIDUAL DIGITS OF A POSITIVE INTEGER IS..11
Page | 4
3). Write a C program to generate the first n terms of the Fibonacci
Sequence.
ALGORITHM:
Step 1 : Start
Step 2 : Read n
Step 3 : Initialize f0 ← 0, f1 ← 1, f ← 0
Step 4 :i=0
Step 5 : while(i<=n) do as follows
printf("%d\t",f0);
f=f0+f1;
f0=f1;
f1=f;
i=i+1; If not goto step 7
Step 6 : Stop
FLOWCHART:
Page | 5
PROGRAM:
#include<stdio.h>
#include<conio.h>
void main( )
{
int f0,f1,f,n,i;
clrscr( );
printf("ENTER THE VALUE FOR n \n");
scanf("%d",&n);
f0=0;
f1=1;
printf("FIBONACCI SEQUENCE FOR THE FIRST %d TERMS:\n",n);
i=0;
while(i<n)
{
printf("%d\t",f0);
f=f0+f1;
f0=f1;
f1=f;
i=i+1;
}
}
INPUT:
ENTER THE VALUE FOR n
10
OUTPUT:
FIBONACCI SEQUENCE FOR THE FIRST 10 TERMS:
0 1 1 2 3 5 8 13 21 34
Page | 6
4) Write a C program to generate all prime numbers between 1 and n.
Where n is the value supplied by the user.
Description:
Prime number is a number which is exactly divisible by one and itself
only Ex: 2, 3,5,7,………;
ALGORITHM:
Step 1: start
Step 2: read n
Step 3: initialize i=1,c=0
Step 4:if i<=n goto step 5
If not goto step 10
Step 5: initialize j=1
Step 6: if j<=i do the following. If no goto step 7
i)if i%j= =0 increment c
ii) increment j
iii) goto Step 6
Step 7: if c= = 2 print i
Step 8: increment i
Step 9: goto step 4
Step 10: stop
FLOWCHART:
Page | 7
PROGRAM:
#include<stdio.h>
#include<conio.h>
void main( )
{
int n,i,fact,j;
clrscr( );
printf("enter the number:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
fact=0;
//THIS LOOP WILL CHECK A NO TO BE PRIME NO. OR NOT.
for(j=1;j<=i;j++)
{
if(i%j==0)
Page | 8
fact++;
}
if(fact==2)
printf("\n %d",i);
}
getch( );
}
INPUT:
Enter the number : 5
OUTPUT:
2 3 5
Page | 9
4) Write a C program to Check whether given number is Armstrong
Number or Not.
FLOWCHART:
Page | 10
PROGRAM:
#include<stdio.h>
int main( )
{
int n, n1,rem, num=0;
printf("Enter a positive integer: ");
scanf("%d", &n);
n1=n;
while(n1!=0)
{
rem=n1%10;
num+=rem*rem*rem;
n1/=10;
}
if(num= =n)
printf("%d is an Armstrong number.",n);
else
printf("%d is not an Armstrong number.",n);
}
INPUT:
Enter a positive integer: 371
OUTPUT:
371 is an Armstrong number.
Page | 11
5) Write a C program to check whether given number is perfect number or
Not.
AIM: To Check whether given number is perfect number or not
Description:
A perfect number is a positive integer that is equal to the sum of its
proper positive divisors, that is, the sum of its positive divisors excluding the
number itself.
Ex:
6X1=6
3x2=6
2x3=6
1,2,3 are factors of 6
So 1+2+3=6
ALGORITHM:
Step 1: read n
Step 2: assign i=1,sum=0
Step 3: while(i<n) goto step 4
Step 4: if(n%i==0)
sum=sum+i
i++
Step 5: if(sum==n) print given number is perfect number otherwise not a perfect
number.
PROGRAM:
#include<stdio.h>
int main( )
{
int n,i=1,sum=0;
printf("Enter a number: ");
scanf("%d",&n);
while(i<n)
{
if(n%i==0)
sum=sum+i;
i++;
}
if(sum= =n)
Page | 12
printf("%d is a perfect number",i);
else
printf("%d is not a perfect number",i);
return 0;
}
INPUT:
Enter a number:6
OUTPUT:
6 is a perfect number
Page | 13
6) Write a C program to check whether a number is strong number or not.
AIM: To check whether given number is strong number or not
Description: Strong numbers are the numbers whose sum of factorial of digits
is equal to the original number. Example: 145 is a strong number.
Ex:1!+4!+5!=1+24+120=145.
ALGORITHM:
Step 1:read num,i,f,r,sum=0,temp
Step 2: assign num to temp
Step 3: while(num) goto step 4
Step 4: i=1,f=1
r=num%10
while(i<=r) goto step 5
Step 5: f=f*i
i=i+1
Step 6: sum=sum+f;
Step 7: num=num/10;
Step 8: if sum and temp are equal got step 9
Step 9: print strong number otherwise not a strong number
PROGRAM:
#include<stdio.h>
int main( )
{
int num,i,f,r,sum=0,temp;
printf("Enter a number: ");
scanf("%d",&num);
temp=num;
while(num)
{
i=1,f=1;
r=num%10;
while(i<=r)
{
f=f*i;
i++;
}
Page | 14
sum=sum+f;
num=num/10;
}
if(sum==temp)
printf("%d is a strong number",temp);
else
printf("%d is not a strong number",temp);
return 0;
}
INPUT:
Enter a number:145
OUTPUT:
145 is a strong number
Page | 15
7) Write a C program which takes two integer operands and one operator
from the user, performs the operation and then prints the result.(Consider
the operators +,-,*,/,% and use Switch Statement.)
AIM: To perform arithmetic operations using switch statement.
Description: It is also called as multi-way decision statement. The switch
statement successively tests the value of an expression against a given list for
matching .If match is found ,then that block is executed.
ALGORITHM:
Step 1: Read a,b
Step 2: Print “Menu Options”
Step 3: do Begin
Step 4: Read ch
Step 5: switch(ch)
Begin Step 6:
case 1:
Begin
Calculate c = a+b
Print “c”
break;
End
case 2:
Begin
Calculate c = a-b
Print “c”
break;
End
case 3:
Begin
Calculate c = a*b
Print “c”
break;
End
case 4:
Begin
Calculate c = a/b
Print “c”
break;
End
case 5:
Begin
Calculate c = a%b
Print “c”
Page | 16
break;
End
default:
Print “Invalid choice”
End
PROGRAM:
#include<stdio.h>
#include<conio.h>
void main( )
{
int a,b,c,ch;
clrscr( );
printf("ENTER TWO VALUES FOR a & b\n");
scanf("%d %d",&a,&b);
while(1)
{
printf("MENU OPTIONS \n");
printf("************\n");
printf("1.Addition\n");
printf("2.Subtraction\n");
printf("3.Multiplication\n");
printf("4.Division\n");
printf("5.Modulus\n");
printf(“6.Exit\n”);
printf("\n");
printf("ENTER UR CHOICE\n");
Page | 17
scanf("%d",&ch);
switch(ch)
{
case 1: c=a+b;
printf("The addition of %d and %d is..%d\n",a,b,c);
break;
case 2: c=a-b;
printf("The subtraction of %d and %d is..%d\n",a,b,c);
break;
case 3: c=a*b;
printf("The multiplication of %d and %d is..%d\n",a,b,c);
break;
case 4: c=a/b;
printf("The division of %d and %d is..%d\n",a,b,c);
break;
case 5: c=a%b;
printf("The modulus of %d and %d is..%d\n",a,b,c);
break;
case 6:exit(0);
default:printf("INVALID CHOICE\n");
}
}
getch();
}
INPUT:
ENTER TWO VALUES FOR a & b: 20 16
OUTPUT:
MENU OPTIONS
1.Addition
2.Subtraction
3.Multiplication
4.Division
5.Modulus
6.Exit
ENTER UR CHOICE 1
The addition of 20 and 16 is..36
ENTER UR CHOICE 2
The subtraction of 20 and 16 is..4
ENTER UR CHOICE 3
The multiplication of 20 and 16 is..320
ENTER UR CHOICE 4…
ENTER UR CHOICE 5…
Page | 18
7) Write a C program to find the factorial of a given integer using non-
recursive function.
AIM: To find the factorial of a given number using non-recursive function.3
Description: n!=n*(n-1)*(n-2)…..*1
ALGORITHM:
Step 1: Start
Step 2: Read n
Step 3: Call fact(n) goto step 6
Step 4: Store result in “f”
Step 5: Print “f” goto step 10
Step 6: Begin //sub program
Initialize f ← 1
Step 7: for i is 1 to n by step 2
Step 8: Calculate f = f*i
Step 9: return “f”
End
Step 10: Stop
Page | 19
PROGRAM:
#include<stdio.h>
#include<conio.h>
int fact(int);
void main( )
{
int n,i,f;
clrscr( );
printf("ENTER A VALUE FOR n:\n");
scanf("%d",&n);
f=fact(n);
printf("THE FACTORIAL OF A GIVEN NO IS..%d",f);
getch();
}
int fact(int n)
{
int i,f=1;
for(i=1;i<=n;i++)
f=f*i;
return(f);
}
INPUT:
ENTER A VALUE FOR n
5
OUTPUT:
THE FACTORIAL OF A GIVEN NUMBER IS..120
Page | 20
8) Write a C program to find the factorial of a given integer using recursive
function.
AIM: To find the factorial of a given number using recursive function.
Description: The function which calls itself is called recursive function
ALGORITHM:
Main program
Step 1: start
Step 2: read n
Step 3: call sub program as f=fact(n)
Step 4: print f value
Step 5: stop
Sub program:
Step 1: initialize the f
Step 2: if n= = 0 or n == 1 return 1 to main program if not goto step 3
Step 3: return n*fact(n-1) to main program
FLOW CHART:
PROGRAM:
#include<stdio.h>
#include<conio.h>
int fact(int);
void main( )
{
Page | 21
int n,res;
clrscr( );
printf("ENETR A NUMBER:\n");
scanf("%d",&n);
res=fact(n);
printf("THE FACTORIAL OF A GIVEN NUMBER IS..%d",res);
getch();
}
int fact(int n)
{
int r;
if(n==0)
return(1);
else
{
r=n*fact(n-1);
return(r);
}
}
INPUT:
ENTER A VALUE FOR n
5
OUTPUT:
THE FACTORIAL OF A GIVEN NUMBER IS..120
Page | 22
9) Write a C program to find the GCD of two given integers by using the
recursive function.
AIM: To find the Gcd of two given integers by using the recursive function
Description: The greatest common divisor (gcd) of two or more integers, when
at least one of them is not zero, is the largest positive integer that divides the
numbers without a remainder.
For example, the GCD of 8 and 12 is 4.
ALGORITHM:
Main program:
Step 1: start
Step 2: read a,b
Step 3: call the sub program GCD(a,b) for print the value
Step 4: stop
Sub program: GCD(n,m)
Step 1: if n>m return GCD(n,m)
Step 2: if n==0 return m else goto step 3
Step 3: return GCD (n,m%n)
Step 4: return to main program
FLOW CHART:
Page | 23
PROGRAM:
#include<stdio.h>
#include<conio.h>
int gcdrecursive(int m,int n)
{
if(n>m)
return gcdrecursive(n,m);
if(n==0)
return m;
else
return gcdrecursive(n,m%n); // return to the main program
}
void main( )
{
int a,b,igcd; clrscr();
printf("enter the two numbers whose gcd is to be found:");
scanf("%d%d",&a,&b);
printf("GCD of a,b is %d",gcdrecursive(a,b)); // return to the sub program
getch();
}
INPUT:
Enter the two numbers whose gcd is to be found: 5 25
OUTPUT:
GCD of a, b is : 5
Page | 24
10) Write a C program to find the GCD of two given integers using non-
recursive function.
AIM: To find the GCD of two given integers by using the non recursive
function
Description:
GCD means Greatest Common Divisor. i.e the highest number which divides
the given number
Ex: GCD(12,24) is 12
Formula: GCD= product of numbers / LCM of numbers
ALGORITHM:
Step 1: start
Step 2: read a,b
Step 3: call sub program g=GCD(a,b)
Step 4: print the g value
Step 5: stop
Sub program:
Step 1: initialize the p=1, q, remainder
Step 2: remainder=p-(p/q*q)
Step 3: remainder=0 return q else goto step 4
Step 4: GCD(q, remainder) return to main program
FLOWCHART:
Page | 25
PROGRAM:
#include<stdio.h>
#include<conio.h>
int gcd(int a,int b);
int main( )
{
int a,b;
int r,t;
printf("Enter any two integers");
scanf("%d%d",&a,&b);
r=gcd(a,b);
printf("GCD=%d",r);
getch( );
}
int gcd(int a,int b)
{
int t,rem;
while(1)
{
if(b>a)
{
t=a;
a=b;
b=t;
}
if(b= =0)
return a;
else
{
rem=a%b;
a=rem;
}
}
}
INPUT:
Enter the two numbers whose gcd is to be found:5,25
OUTPUT:
GCD of a,b is : 5
Page | 26
11) Write a C program to find both the largest and smallest number in a
list of integers
AIM: To find the largest and smallest number in a list of integers.
Description: By comparing a list of sorted or unsorted list of integers, the
smallest and largest integer is found.
ALGORITHM:
Step 1: start
Step 2: read n
Step 3: initialize i=0
Step 4: if i<n do as follows. If not goto step 5
Read a[i]
Increment i
Goto step 4
Step 5: small=a[0], large=a[0]
Step 6: initialize i=0
Step 7: if i<n do as follows. If
not goto step 8
If a[i]<small
Assign small=a[i]
If a[i]>large
Assign large=a[i]
Increment i goto Step 7
Step 8: print small, large
Step 9: stop
Page | 27
FLOWCHART:
PROGRAM:
#include<stdio.h>
#include<conio.h>
void main( )
{
int a[10],i,n,small,large;
clrscr( );
printf("Enter The Array Size:");
scanf("%d",&n);
printf("ENTER ELEMENTS OF ARRAY");
for(i=0;i<n;i++) // read the elements of an array
scanf("%d",&a[i]);
Page | 28
small=a[0];
large=a[0];
for(i=0;i<n;i++) // read the elements of an array
{
if(a[i]<small) // check the condition for minimumvalue
small=a[i];
if(a[i]>large) //check the condition for maximumvalue
large=a[i];
}
printf("largest value is:%d\n",large);
printf("smallest value is:%d\n",small);
getch();
}
INPUT:
Enter The Array Size:10
ENTER THE ELEMENTS OF ARRAY
7 10 9 8 6 5 2 3 4 1
OUTPUT:
largest value is : 10
smallest value is : 1
Page | 29
12) Write a C Program to Sort the Array in an Ascending Order.
AIM: C Program to Sort the Array in an Ascending Order
Description: The given elements in an are arranged in an ascending order by
comparing each element with one another.
ALGORITHM:
Step 1: start
Step 2: read n
Step 3: initialize i=0
Step 4: if i<n do as follows. If not goto step 5
Read a[i]
Increment i
Goto step 4
Step 5: small=a[0], large=a[0]
Step 6: initialize i=0
Step 7: if i<n do as follows. If
not goto step 8
j=0
if j<n-1 do as follows
If a[j]< a[j+1]
t = a[j]
a[j] = a[j+1]
a[j+1] = t
Increment j
Increment i
goto Step 7
Step 8: if i<n do as follows. If not goto step 9
print a[i]
Increment i
Goto step 8
Step 9: stop
Page | 30
FLOWCHART:
PROGRAM:
#include <stdio.h>
void main( )
{
int i, j, a, n, number[30];
printf("Enter the value of n:");
scanf("%d", &n);
printf("Enter the numbers \n");
for (i = 0; i < n; ++i)
scanf("%d", &number[i]);
for (i = 0; i < n; ++i)
Page | 31
{
for (j = 0; j < n-1; ++j)
{
if (number[j] > number[j+1])
{
a = number[j];
number[j] = number[j+1];
number[j+1] = a;
}
}
}
printf("The numbers arranged in ascending order are given below \n");
for (i = 0; i < n; ++i)
printf("%d\n", number[i]);
}
INPUT:
Enter the value of n:4
Enter the numbers
78
3
90
456
OUTPUT:
The numbers arranged in ascending order are given below
3
78
90
456
Page | 32
13) Write a C Program to find whether the given matrix is symmetric or
not.
AIM: C Program to find whether the given matrix is symmetric or not.
Description: A square matrix is said to be symmetric matrix if the transpose of
the matrix is same as the given matrix. Symmetric matrix can be obtained by
changing row to column and column to row.
ALGORITHM:
Step 1: Start
Step2: read row-order as m and col-order as n
for i is 0 to m by step 1
for j is 0 to n by step 1
Step 3: Read a[i][j]
Step 4: go to step 2
Step 5: compare a[i][j] with a[j][i]
Step 6: if(a[i][j]!=a[j][i])
print "Matrix is not symmetric”
go to step 9
Step 7: go to step 4
Step 8: print "Matrix is symmetric”
Step 9: Stop
PROGRAM:
#include<conio.h>
#include<stdio.h>
void main( )
{
int a[10][10],i,j,m,n;
clrscr( );
printf("Enter row-order and col-order of matrix: ");
scanf("%d%d",&m&n);
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
printf("Enter %d values one by one : ",i*j);
scanf("%d",&a[i][j]);
}
Page | 33
}
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
if(a[i][j]!=a[j][i])
{
printf("\n\nMatrix is not symmetric");
getch();
exit(0);
}
}
}
printf("\n\nMatrix is symmetric");
getch( );
}
INPUT:
Enter row-order and col-order of matrix:
2
2
Enter 4 values one by one
12
34
34
54
OUTPUT:
Matrix is symmetric
Page | 34
14) Write a C program to perform addition of two matrices.
AIM: To perform addition of two matrices.
Description: Consider two matrices and their order is R1xC1 and R2XC2.
The condition is R1==R2 and C1==C2,then only the addition is possible.
ALGORITHM:
Step 1: Start
Step21: for i is 0 to 2 by step 1
for j is 0 to 2 by step 1
Step 3: Read a[i][j],b[i][j]
Step 4: go to step 2
Step 5: calculate c[i][j]=a[i][j]+b[i][j]
Step 6: go to step 2
Step 7: Print c[i][j]
Step 8: Stop
FLOW CHART:
Page | 35
PROGRAM:
#include<stdio.h>
#include<conio.h>
void read_matrix(int a[5][5],int row,int col)
{
int i,j;
for(i=0;i<row;i++)
for(j=0;j<col;j++)
scanf("%d",&a[i][j]);
}
void add_matrix(int a[5][5],int b[5][5],int c[5][5],int row,int col)
{
int i,j;
for(i=0;i<row;i++)
for(j=0;j<col;j++)
c[i][j]=a[i][j]+b[i][j];
}
void display_matrix(int a[5][5],int row,int col)
{
int i,j;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
printf("%d\t",a[i][j]);
}
printf("\n");
}
}
void main()
{
int a[5][5],b[5][5],c[5][5];
int i,j,p,q,r,s;
clrscr( );
printf("ENTER ORDER OF A MATRIX\n");
scanf("%d%d",&p,&q);
printf("ENTER ORDER OF B MATRIX\n");
Page | 36
scanf("%d%d",&r,&s);
if(p= =r&&q= =s)
{
printf("ENTER A MATRIX\n");
read_matrix(a,p,q);
printf("ENTER B MATRIX\n");
read_matrix(b,p,q);
add_matrix(a,b,c,p,q);
printf(" After addition of two matrices:\n");
display_matrix(c,p,q);
}
else
{
printf("Addition not possible");
}
getch( );
}
INPUT:
ENTER ORDER OF A MATRIX
2
2
ENTER ORDER OF B MATRIX
2
2
ENTER A MATRIX
1
2
3
4
ENTER B MATRIX
1
2
3
4
OUTPUT:
After addition of two matrices:
2 4
6 8
Page | 37
15) Write a C program that uses functions to perform Multiplication of
Two Matrices.
AIM: To perform multiplication of two matrices.
Description: Consider two matrices and their order is R1xC1 and R2XC2.
The condition is C1==R2 ,then only the multiplication is possible.
ALGORITHM:
Step 1: Start
Step21: for i is 0 to 2 by step 1
for j is 0 to 2 by step 1
Step 3: Read a[i][j],b[i][j]
Step 4: goto step 2
Step 5: calculate c[i][j]=c[i][j]+a[i][k]*b[k][j]
Step 6: goto step 2
Step 7: Print c[i][j]
Step 8: Stop
PROGRAM:
#include<stdio.h >
#include<conio.h>
int i,j,k;
void mul(int x[10][10],int y[10][10],int z[10][10],int m,int n,int p,int q)
{
for (i=0;i<m;i++)
for(j=0;j<q;j++)
{
z[i][j]=0;
for(k=0;k<n;k++)
z[i][j]+= x[i][k]*y[k][j];
}
}
void read(int x[10][10], int m,int n)
{
printf("Enter Matrix Value Row by Row\n");
for (i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&x[i][j]);
}
Page | 38
void display(int x[10][10], int m,int n)
{
for (i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%5d",x[i][j]);
printf("\n");
}
printf("\n");
}
void main( )
{
int a[10][10],b[10][10],c[10][10],m,n,p,q,;
void mul(int x[10][10],int y[10][10],int z[10][10],int m,int n,int p,int q);
void read(int x[10][10],int m,int n);
void display(int x[10][10], int m,int n);
clrscr( );
printf("Enter the size of A Mtrix (Row and Col): \n");
scanf("%d%d",&m,&n);
printf("Enter the size of B Mtrix (Row and Col): \n");
scanf("%d%d",&p,&q);
if(n!=p)
{
printf("Multiplication Not Possible\n Please re-enter\n");
printf("correct size and try again..... \n");
}
else
{
read(a,m,n);
read(b,m,n);
mul(a,b,c,m,n,p,q);
printf("A Matrix is :\n");
display(a,m,n);
printf("B Matrix is :\n");
display(b,m,n);
printf("C Matrix is :\n");
display(c,m,n);
Page | 39
}
getch( );
}
INPUT:
Enter the size of A Mtrix (Row and Col): 2 2
Enter the size of B Mtrix (Row and Col): 2 2
Enter Matrix Value Row by Row
1 0
2 6
Enter Matrix Value Row by Row
3 4
4 2
OUTPUT:
A matrix is:
1 0
2 6
B Matrix is:
3 4
4 2
C matrix is:
3 4
24 20
Page | 40
16) Write a C program to use function to insert a sub-string in to given
main string from a given position.
AIM: To insert a string into another string from a specified position.
Description: Consider a main string and a sub string should be included at the
specified position. Ex:”PROG” is the main string and the sub string is “RAM”,
position =4,then the output is “PROGRAM”
ALGORITHM:
Step 1: start
Step 2: read main string and sub string
Step 3: find the length of main string(r)
Step 4: find length of sub string(n)
Step 5: copy main string into sub string
Step 6: read the position to insert the sub string( p)
Step 7: copy sub string into main string from position p-1
Step 8: copy temporary string into main string from position p+n-1
Step 9: print the strings
Step 10: stop
FLOW CHART :
Page | 41
PROGRAM:
#include<stdio.h>
#include<string.h>
main( )
{
char a[30],b[30],c[30];
int pos=0,i=0,L,La,Lb,Lc,j;
puts("Enter a string");
gets(a);
puts("Enter sub string");
gets(b);
puts("enter position for insertion");
scanf("%d",&pos);
La=strlen(a);
Lb=strlen(b);
L=pos+Lb;
Lc=La+Lb;
for(i=0;i<pos;i++)
{
c[i]=a[i];
}
j=0;
for(i=pos;i<=L;i++)
{
}
j=pos;
c[i]=b[j];
j++;
for(i=L;i<Lc;i++)
{
c[i]=a[j];
j++;
}
c[i]='\0';
puts("String after Insertion is:");
printf("%s",c);
}
Page | 42
INPUT:
Enter First String:
Comer
Enter Second String:
Put
OUTPUT:
Enter the position where the item has to be inserted: 3
Computer
Page | 43
17) Write a C Program to swap the values of two variables using
i) Call by Value ii) Call by Reference
AIM: To Write a C Program to swap the values of two variables using
i) Call by Value ii) Call by Reference
Description: (i)In call by value ,the values of actual arguments are passed to
called function.
(ii) In call by reference, the address of actual arguments are passed to called
function.
ALGORITHM:
Step 1: start
Step 2: read a,b
Step 3: t=a;
Step 4: b=b;
Step 5: b=t;
Step 6:print a ,b values
Step 7: stop
FLOW CHART:
PROGRAM:
(i)c program to swap using call by value
#include<stdio.h>
#include<conio.h>
int swap(int , int); // Declaration of function
void main( )
Page | 44
{
int a = 10, b = 20 ; // call by value
swap(a,b); // a and b are actual parameters
printf ( "\na = %d b = %d", a, b ) ;
getch( );
}
int swap( int x, int y ) // x and y are formal parameters
{
int t ;
t=x;
x=y;
y=t;
printf ( "\nx = %d y = %d", x, y ) ;
}
OUTPUT :
x=20 y=10
a=10 b=20
Page | 45
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
}
INPUT:
Enter any Two Integers: 5 10
OUTPUT:
Number1 = 10
Number2 = 5
Page | 46
18) Write a C program using user defined functions to determine whether
the given string is palindrome or not.
AIM: To determine if the given string is palindrome or not.
Description: Palindrome means string on reversal should be same as original
Ex: madam on reversal is also madam
ALGORITHM:
Step 1: start
Step 2: read string A
Step 3: copy string A into B
Step 4: reverse string B
Step 5: compare A &B
If A equals B to got step 6
Else goto step 7
Step 6:print given string A is palindrome
Step 7:print given string is not palindrome
Step 8: stop
FLOW CHART:
Page | 47
PROGRAM:
#include <stdio.h>
#include <string.h>
int main( )
{
char string[25], reverse_string[25] = {'\0'};
int i, length = 0, flag = 0;
printf("Enter a string \n");
gets(string);
for (i = 0; string[i] != '\0'; i++)
{
length++;
}
printf("The length of the string '%s' = %d\n", string, length);
for (i = length - 1; i >= 0 ; i--)
{
reverse_string[length - i - 1] = string[i];
}
for (flag = 1, i = 0; i < length ; i++)
{
if (reverse_string[i] != string[i])
flag = 0;
}
if (flag = = 1)
printf ("%s is a palindrome \n", string);
else
printf("%s is not a palindrome \n", string);
return 0;
}
INPUT:
Enter a string
madam
OUTPUT:
The length of the string 'madam' = 5
madam is a palindrome
Page | 48
19) Write a C program to find the length of the string using Pointer.
AIM: To find the length of the string using Pointer.
Description: The length of the string is known by considering whether the
character in the array is null or not. If it is not null ,the count will be
incremented until it becomes null.
ALGORITHM:
Step 1:start
Step 2:read string
Step 3: count=0;i=0
Step 4: if string[i]!=’\0’
count:= count +1
i:=i+1
step 5:print count
step 6 stop
FLOWCHART:
PROGRAM:
#include<stdio.h>
#include<conio.h>
int string_Len(char*);
Page | 49
void main( )
{
char str[20];
int length;
clrscr( );
printf("\nEnter any string : ");
gets(str);
length = string_Len (str);
printf("The length of the given string %s is : %d", str, length);
getch( );
}
int string_Len (char*p) /* p=&str[0] */
{
int count = 0;
while (*p != '\0') {
count++;
p++;
}
return count;
}
INPUT:
Enter the String : svdc
OUTPUT:
Length of the given string svdc is : 4
Page | 50
20) Write a C Program to Calculate Total and Percentage marks of a
student using structure.
AIM: C Program to Calculate Total and Percentage marks of a student using
structure.
Description: The list of marks of a student are read and total is calculated and
percentage is obtained.
Ex: total=m1+m2+m3, percentage=total / max-marks*100
ALGORITHM:
Step1: start
step2: Create a structure with a name STUDENT
step3: Include members like M1,M2,M3… within STUDENT
step4: Declare a structure variable to access the member of STUDENT
step5: read the structure members
step6:calculate total
step7:calculate percentage
step8:print the structure members
step7:stop
PROGRAM:
#include<stdio.h>
#include<conio.h>
struct student
{
int rl;
char nm[20];
int m1;
int m2;
int m3;
int t;
int max_marks ;
float per;
};
void main( )
{
struct student a;
clrscr( );
printf(" Enter RollNo, Name, three sub-marks, and max-marks in order
Page | 51
\n");
scanf("%d%s%d%d%d%d",&a.rl,&a.nm,&a.m1,&a.m2,&a.m3,&a.max_
marks);
a.t=a.m1+a.m2+a.m3;
a.per=a.t/max_marks*100;
printf("rollno=%d\n",a.rl);
printf("Name:%sk\n",a.nm);
printf("m1: %d\n",a.m1);
printf("m2: %d\n",a.m2);
printf("m3: %d\n",a.m3);
printf("total: %d\n",a.t);
printf("per: %f\n",a.per);
getch();
}
INPUT:
Enter RollNo, Name and three sub marks , max_marks
12
XYZ
30
40
50
300
OUTPUT:
Rollno:12
Name: XYZ
m1: 30
m2: 40
m3: 50
total: 120
per: 40.000000
Page | 52