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.

Example

Input

Input lower limit: 1
Input upper limit: 10

Output

Even numbers between 1 to 10: 2, 4, 6, 8, 10
Odd numbers between 1 to 10: 1, 3, 5, 7, 9

Required knowledge

Basic C programming, If else, Functions, Recursion

Must know –

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);
}

Read more – Program to find sum of even numbers in given range using recursion

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,

Happy coding 😉