C Program to reverse a digit using recursion

Program

#include<stdio.h>
#include<math.h>
int reverse(int num, int length)
{
    if(length == 1)
        return num;
    else
        return (((num % 10) * pow(10, length - 1)) + reverse(num /10, --length));
}
void main()
{
    int num, length, rev, temp;
    printf("Enter a number:\t");
    scanf("%d", &num);
    temp = num;
    while(temp != 0)
    {
        length++;
        temp = temp / 10;
    }
    rev = reverse(num, length);
    printf("Reversed number is:\t%d\n", rev);
}

Output

Enter a number: 2987
Reversed number is:     7892