## Recursion in C Language | Programs of recursion in C Language

You must first complete Introduction to function in C Language before viewing this Lesson

# 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 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 void msg() { printf(”\nHello”); } void disp() { printf(”Welcome”); msg();       /*Function msg() nested within function show().*/ } int main() { disp(); return(0); }``` Output ```Welcome Hello```
```