0% found this document useful (0 votes)
3 views

Problem Solving Using c

The document provides a series of C programming exercises aimed at solving various problems, including calculating the sum and average of numbers, generating Fibonacci sequences, and checking for prime, Armstrong, perfect, and strong numbers. Each problem includes an aim, description, algorithm, program code, and sample input/output. The document serves as a practical guide for learning fundamental programming concepts in C.

Uploaded by

Rama Krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Problem Solving Using c

The document provides a series of C programming exercises aimed at solving various problems, including calculating the sum and average of numbers, generating Fibonacci sequences, and checking for prime, Armstrong, perfect, and strong numbers. Each problem includes an aim, description, algorithm, program code, and sample input/output. The document serves as a practical guide for learning fundamental programming concepts in C.

Uploaded by

Rama Krishna
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

PROBLEM SOLVING USING ‘C’

1. Write a C program to find the sum and average of three numbers.

AIM: find the sum and average of three numbers


Description: sum=number1+number2+number3
Average=sum/3
ALGORITHM:
Step 1: Start
Step 2: Declare variables num1, num2, num3 and sum, average.
Step 3: Read values num1,num2, num3
Step 4: Add num1,num2, num3 and assign the result to sum.
sum←num1+num2 +num3
average ← sum/3
Step 5: Display sum and average
Step 6: Stop

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.

AIM: To find the sum of individual digits of positive integer.


Description: Summation of digits of a number
Ex: 1234
Summation =1+2+3+4=10

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.

AIM: To generate the first n terms of the Fibonacci sequence..


Description: Initial Fibonacci numbers are 0 and 1. Next number can be
generated by adding two numbers. So 0+1=1. Therefore next number can be
generated by adding two previous . so Fibonacci series is 0 1 1 2 3 5 ……

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.

AIM: To print a prime numbers up to 1 to n

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.

AIM: To check whether given number is Armstrong Number or Not


Description:
An Armstrong number of three digits is an integer such that the sum
of the cubes of its digits is equal to the number itself. For example, 371 is an
Armstrong number since 3**3 + 7**3 + 1**3 = 371
ALGORITHM:
Armstrong number
Step 1: start
Step 2:read n
Step 3:assign sum←0, I ←m←n, count =0
Step 4:if m>0 repeat
Step 4.1:m←m/10
Step 4.2:count++
Step 4.3:until the condition fail
Step5: if I>0 repeat step 4 until condition fail
Step 5.1:rem← I%10 
Step 5.2:sum ←sum+pow(rem,count)
Step 5.3:I ←I/10
Step 6:if n=sum print Armstrong otherwise print not Armstrong
Step 7:stop

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

ii) Program to swap two number using call by reference.


Program:
#include <stdio.h>
void swap(int *a,int *b);
int main( )
{
int num1,num2;
printf("Enter any Two Integers:");
scanf("%d%d",&num1,&num2);
swap(&num1,&num2);
printf("Number1 = %d\n",num1);
printf("Number2 = %d",num2);
return 0;
}

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

You might also like