LAB ASSIGNMENT 9
ROLL NO:-20MCE1032 NAME:-VIRAJ GAONKAR
1. Write a C program to find factorial of any number using recursion.
#include<stdio.h>
long factorial(int n);
int main()
int fact,number;
printf("Enter a number:\n");
scanf("%d",&number);
fact=factorial(number);
printf("The factorial of %d is %ld.\n",number, fact);
return 0;
long factorial(int n)
if(n==0)
return 1;
else if(n>0)
return(n*factorial(n-1));
Output.
Enter a number:
8
The factorial of 8 is 40320
2. Write a C program to find maximum and minimum elements in array
usingrecursion.
#include<stdio.h>
int findmax(int [],int,int);
int findmin(int [],int,int);
int main()
int n,i,maxele,minele;
printf("Enter the size of tha array:\n");
scanf("%d",&n);
int a[n];
printf("\nEnter %d elements:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
minele=findmin(a,0,n);
maxele=findmax(a,0,n);
printf("\nMaximum element of the array:%d\n",maxele);
printf("\nMinimum element of the array:%d\n",minele);
return 0;
int findmax(int arr[], int index, int n)
int max;
if(index>=n-2)
if(arr[index]>arr[index+1])
{
return arr[index];
else
return arr[index+1];
max=findmax(arr,index+1,n);
if(arr[index]>max)
return arr[index];
else
return max;
int findmin(int arr[], int index, int n)
int min;
if(index>=n-2)
if(arr[index]<arr[index+1])
return arr[index];
else
return arr[index+1];
}
}
min=findmin(arr,index+1,n);
if(arr[index]<min)
return arr[index];
else
return min;
Output.
Enter the size of tha array:
Enter 5 elements:
23
34
45
56
576
Maximum element of the array:576
Minimum element of the array:23
3. Write a C program to find sum of all even or odd numbers in given range
using recursion.
#include<stdio.h>
int even_sum(int,int);
int odd_sum(int,int);
int main()
int start, end,sum_even,sum_odd;
printf("Enter the lower limit:\n");
scanf("%d",&start);
printf("Enter the upper limit:\n");
scanf("%d",&end);
sum_even=even_sum(start,end);
printf("The sum of even numbers between %d and %d is %d\n",start,end,sum_even);
sum_odd=odd_sum(start,end);
printf("The sum of odd numbers between %d and %d is %d\n",start,end,sum_odd);
return 0;
int even_sum(int start,int end)
if(start>end)
return 0;
else if(start%2==0)
return(start+even_sum(start+2,end));
else if(start%2==1)
start=start+1;
return(start+even_sum(start+2,end));
int odd_sum(int start,int end)
{
if(start>end)
return 0;
else if(start%2==0)
start=start+1;
return(start+odd_sum(start+2,end));
else if(start%2==1)
return(start+odd_sum(start+2,end));
Output
Enter the lower limit:
Enter the upper limit:
34
The sum of even numbers between 5 and 34 is 300
The sum of odd numbers between 5 and 34 is 285
4. Write a program in C to count the digits of a given number using recursion.
#include<stdio.h>
int digitcount(int n);
int counter=0;
int main()
int n;
int count;
printf("Enter an integer:\n");
scanf("%d",&n);
count=digitcount(n);
printf("\nThe number of digits in %d is %d\n",n,count);
return 0;
}
int digitcount(int n)
if(n>0)
counter=counter+1;
return (digitcount(n/10));
}
else
return (counter);
Output.
Enter an integer:
213432
The number of digits in 213432 is 6
5. Write a program in C to multiply two matrix using recursion.
#include<stdio.h>
void multiplication(int a,int b,int A[10][10],int c,int B[10][10],int C[10][10]);
void disp(int a,int c,int C[10][10]);
int main()
int a,b,c,i,j,k;
int A[10][10],B[10][10],C[10][10]={0};
printf("Enter the number of rows and columns in matrix A:\n");
scanf("%d %d",&a,&b);
printf("\nEnter the number of rows and columns in matrix B:\n");
scanf("%d %d",&b,&c);
printf("\nEnter the elements of matrix A:\n");/*horrow vercol*/
for(i=0;i<a;i++)
for(j=0;j<b;j++)
scanf("%d",&A[i][j]);
printf("\nEnter the elements of matrix B:\n");
for(j=0;j<b;j++)
for(k=0;k<c;k++)
scanf("%d",&B[j][k]);
multiplication(a,b,A,c,B,C);
printf("\nThe product of matrix A and B is:\n");
disp(a,c,C);
return 0;
}
void multiplication(int a,int b,int A[10][10],int c,int B[10][10],int C[10][10])
static int i=0,j=0,k=0;/*order of a is ij, b is jk, and c is ik*/
if(i<a)
if(j<b)
if(k<c)
C[i][k]=C[i][k]+A[i][j]*B[j][k];
k++;
multiplication(a,b,A,c,B,C);
k=0;
j++;
multiplication(a,b,A,c,B,C);
}
j=0;
i++;
multiplication(a,b,A,c,B,C);
void disp(int a,int c,int C[10][10])
int i,k;
for(i=0;i<a;i++)
for(k=0;k<c;k++)
printf("%d ",C[i][k]);
printf("\n");
}
Output.
Enter the number of rows and columns in matrix A:
33
Enter the number of rows and columns in matrix B:
33
Enter the elements of matrix A:
111
111
111
Enter the elements of matrix B:
111
111
111
The product of matrix A and B is:
333
333
333
6. Write a C program to find Fibonacci series of given number using recursion.
#include<stdio.h>
int fibonacci(int n);
int main()
{
int i,n,m;
printf("Enter total numbers of the series required:\n");
scanf("%d",&n);
printf("\nThe numbers in the series are:\n");
printf("0 ");
for(i=0;i<n-1;i++)
printf("%d ",fibonacci(m));
m++;
return 0;
int fibonacci(int n)
if(n==0 || n==1)
return n;
else
return fibonacci(n-1)+fibonacci(n-2);
Output.
Enter total numbers of the series required:
40
The numbers in the series are:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368
75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465
14930352 24157817 39088169 63245986
7. Write a Program to find the First Capital Letter in a String using recursion.
#include<stdio.h>
#include<string.h>
char all_caps(char *);
int main()
{
char s[20],alpha;
printf("Enter the string:\n");
scanf("%s",&s);
alpha=all_caps(s);
if(alpha==0)
printf("No capital letters are present.");
else if(alpha>=0)
printf("The first capital letter in the string %s is %c",s,alpha);
return 0;
char all_caps(char *s)
int ele;
static int i;
if(i<strlen(s))
for(ele=0;ele<strlen(s);ele++)
if(s[ele]>='A' && s[ele]<='Z')
return s[ele];
}
Output.
Enter the string:
232Balaan
The first capital letter in the string 232Ballan is B
8. Write a Program to copy one string to another string using recursion.
#include<stdio.h>
void copystr(char [],char [],int);
int main()
char s1[1000],s2[1000];
printf("Enter the string to be copied:\n");
scanf("%s",&s1);
printf("\nAfter copying the string.\n");
copystr(s1,s2,0);
printf("\nThe original string is:%s \n",s1);
printf("\nThe copied string is:%s \n",s2);
return 0;
}
void copystr(char s1[],char s2[],int i)
s2[i]=s1[i];
if(s1[i]=='\0')
return ;
copystr(s1,s2,i+1);
}
Output.
Enter the string to be copied:
423*eawW
After copying the string.
The original string is:423*eawW
The copied string is:423*eawW
9. Write a C program to print all natural numbers between 1 to n using recursion.
#include<stdio.h>
void printnumbers( int lower, int upper);
int main()
int lower,upper;
printf("Enter the lower limit:\n");
scanf("%d",&lower);
printf("\nEnter the upper limit:\n");
scanf("%d",&upper);
printf("\nAll the natural numbers from %d to %d are:\n",lower,upper);
printnumbers(lower,upper);
return 0;
void printnumbers( int lower, int upper)
if(lower>upper)
return;
}
printf("%d ",lower);
printnumbers( lower+1, upper);
Output.
Enter the lower limit:
22
Enter the upper limit:
32
All the natural numbers from 22 to 32 are:
22 23 24 25 26 27 28 29 30 31 32
10. Write a C program to display all array elements using recursion.
#include<stdio.h>
void print_array(int a[],int n,int i);
int main()
int n,i;
printf("Enter the size of the array:\n");
scanf("%d",&n);
int a[n];
printf("\nEnter %d elements:\n",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\nThe elements of the array are:\n");
print_array(a,n,0);
return 0;
}
void print_array(int a[],int n,int i)
if(i>=n)
return;
printf("%d ",a[i]);
print_array( a,n,i+1);
Output.
Enter the size of the array:
Enter 5 elements:
29
32
45
54
68
The elements of the array are:
29 32 45 54 68