C program to print even or odd numbers in given range using recursion

Write a recursive function in C programming to print all even or odd numbers between 1 to n. How to print all even numbers in given range using recursion in C programming. Logic to print even/odd numbers in given range using recursion.

Required knowledge

Basic C programming, If else,for loop,Functions, Recursion

Declare recursive function to print all even numbers

  1. First give a meaningful name to the recursive function to print even odd numbers. Let's say printEvenOdd(). This function can print both even as well as odd numbers in given range.
  2. Next the function must accept two inputs i.e. the current number to print and the upper limit. Hence, update the function declaration to printEvenOdd(int cur, int limit);.
  3. Finally, the function prints all even or odd numbers in given range and returns void.
    So, the final function declaration to print even or odd numbers is - void printEvenOdd(int cur, int limit);.

Logic to print even numbers using recursion

Printing either even or odd numbers have same logic. Starting from a seed value increment the current number by 2 to get next value. When the current number exceeds the upper limit to print then terminate from function. Which is our required base condition to exit control from function. If the current number is less than upper limit than print the current number and recursively call the printEvenOdd() with a new value of cur i.e. printEvenOdd(cur + 2, limit);.

Program to print even or odd numbers in given range using recursion



 
/** 
 * C program to print even or odd numbers in given range using recursion
 */

#include <stdio.h>


/* Function declaration */
void printEvenOdd(int cur, int limit);



int main()
{
    int lowerLimit, upperLimit;
    
    // Input lower and upper limit from user
    printf("Enter lower limit: ");
    scanf("%d", &lowerLimit);
    printf("Enter upper limit: ");
    scanf("%d", &upperLimit);
    
    printf("Even/odd Numbers from %d to %d are: ", lowerLimit, upperLimit);
    printEvenOdd(lowerLimit, upperLimit); 
    
    return 0;
}


/**
 * Recursive function to print even or odd numbers in a given range. 
 */
void printEvenOdd(int cur, int limit)
{
    if(cur > limit)
        return;
    
    printf("%d, ", cur);
    
    // Recursively call to printEvenOdd to get next value
    printEvenOdd(cur + 2, limit);
}



Output

Enter lower limit: 1

Enter upper limit: 100

Even/odd Numbers from 1 to 100 are: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99




Instagram