Recursion in C Language | Programs of recursion in C Language
Function repeatedly calling itself is called recursion. We must specify some condition to stop recursion otherwise function may run infinitely.
Program using recursion to find factorial of a number . |
#include<stdio.h> int factorial(int no) { if(no==1||no==0) return(1); else return(no*factorial(no-1)); } int main() { int f1,n; printf("\nEnter a number"); scanf("%d",&n); f1=factorial(n); printf("\nFactorial =%d",f1); return(0); } |
Output |
Enter a number=4 Factorial =24 |
Description |
Suppose n is 4
Program will execute as follows f = factorial (4); will be evaluated. Inside function, return(no*factorial(no-1)); is executed. This statement again calls factorial() function with value n-1 i.e. 4*fact(4-1); This process continues until value of no is equal to 1 or 0 and when no is equal to 1 it returns 1 and execution of this function stops. Process is as f0llows f1 = 4* fact (3-1); f1 =4*3* fact (3-1); f4 = 4*3*2*fact (2-1); f 1= 4*3*2*1; f = 24; |
Nesting of functions in C Language
It is the process in which a function calls another function.
Program for nesting of function. |
#include<stdio.h> void msg() { printf(”\nHello”); } void disp() { printf(”Welcome”); msg(); /*Function msg() nested within function show().*/ } int main() { disp(); return(0); } |
Output |
Welcome Hello |