C programming recursion; In this tutorial, you will learn recursive functions in c programming with the help of definition, syntax, advantages, disadvantages, uses, and examples.
C Recursion
- Recursion Function
- Syntax of Recursive Function
- Flowchart of Recursion
- Advantages and Disadvantages of Recursion
- Example 1 – C Program to Find Factorial of a Number Using Recursive Function
- Example 2 – C program print first n Fibonacci numbers using recursion
Recursive Function
In C programming, a function that calls itself is known as a recursive function. And, this technique is known as recursion.
Syntax of Recursive Function
Syntax of recursive function in c programming; as follows:
returntype recursive_func ([argument list])
{
statements;
... ... ...
recursive_func ([actual argument]);
... ... ...
}
Flowchart of Recursion
Flowchart of recursion function; as follows:

Advantages and Disadvantages of Recursion
Advantages of recursion
- 1. The code may be easier to write.
- 2. To solve such problems which are naturally recursive such as tower of Hanoi.
- 3. Reduce unnecessary calling of function.
- 4. Extremely useful when applying the same solution.
- 5. Recursion reduce the length of code.
- 6. It is very useful in solving the data structure problem.
- 7. Stacks evolutions and infix, prefix, postfix evaluations etc.
Disadvantages of recursion
- 1. Recursive functions are generally slower than non-recursive function.
- 2. It may require a lot of memory space to hold intermediate results on the system stacks.
- 3. Hard to analyze or understand the code.
- 4. It is not more efficient in terms of space and time complexity.
- 5. The computer may run out of memory if the recursive calls are not properly checked.
Example 1 – C Program to Find Factorial of a Number Using Recursive Function
#include<stdio.h>
long int multiplyNumbers(int n);
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d",&n);
printf("Factorial of %d = %ld", n, multiplyNumbers(n));
return 0;
}
long int multiplyNumbers(int n) {
if (n>=1)
return n*multiplyNumbers(n-1);
else
return 1;
}
Output
Enter a positive integer: 6 Factorial of 6 = 720
Example 2 – C program print first n Fibonacci numbers using recursion
#include<stdio.h>
int fibo(int num)
{
if(num==1||num==2)
return 1;
else
return (fibo(num-1)+fibo(num-2)); // recursive call
}
int main()
{
int i,n;
printf("Enter the required term: ");
scanf("%d",&n);
printf("First %d fibonacci numbers aren",n);
for (i=1; i<=n; i++)
printf("%dn",fibo(i));
return 0;
}
Output
Enter the required term: 7 First 7 fibonacci numbers are 1 1 2 3 5 8 13