How to Write a C Program to Reverse a Number using While Loop, Functions, and Recursion? For this, first, find the remainder by dividing the number by 10.
C Program to Reverse a Number Using While Loop
It allows the user to enter any positive integer, and then this C program will reverse a number using While Loop.
#include <stdio.h> int main(void) { int n, rd, rs = 0; printf("Please Enter any Number to Reverse = "); scanf("%d", & n); while (n > 0) { rd = n %10; rs = rs * 10+ rd; n = n /10; } printf(“Reverse of entered Number is = %d\n", rs); return 0; }

This program allows the user to enter any positive integer, and then that number is assigned to a variable. Next, Condition in the While Loop will make sure that the given number is greater than 0.
From the above C Program to Reverse a Number example, User Entered value: n = 1456 and rs = 0
First Iteration
rd = n %10 = 1456%10 = 6
rs = rs *10 + rd
rs = 0 * 10 + 6 => 0 + 6 => 6
n = n /10 = 1456 /10 => 145
Second Iteration: From the first Iteration of this C Program, the values of both have changed as Number =145 and Reverse = 6
rd = 145 % 10 = 5
rs = 6 * 10 + 5 => 60 + 5 => 65
n = 145 /10 => 14
Third Iteration: From the Second Iteration of this program, the values of both changed to 14 and 65
rd = 14 % 10 = 4
rs = 65 * 10 + 4 => 650 + 4 => 654
n = 14 / 10 = 1
Fourth Iteration: From the third Iteration of the C Program, Number = 1 and Reverse = 654
rd = 1 %10 = 1
rs = 654 * 10 + 1 => 6540 + 1 => 6541
n = 1/ 10 => 0
Here, For the next iteration, n = 0. So, the C Programming while loop condition will fail
Reverse a Number using For loop
This example uses the for loop to iterate the individual digits in a number and reverse them using the logic we used in the while loop example.
#include <stdio.h> int main(void) { int n, rd, rs = 0; printf("Please Enter any Number = "); scanf("%d", &n); for(;n > 0; n = n /10){ rd = n % 10; rs = rs * 10+ rd; } printf("Reverse of entered = %d\n", rs); return 0; }
Please Enter any Number = 149857
Reverse of entered = 758941
C Program to Reverse a Number Using Functions
This program allows the user to enter any positive integer. And then, this C program reverses a number using Functions
#include <stdio.h> int rev_Integer (int); int main(void) { int Number, rev = 0; printf("Please Enter any number = "); scanf("%d", &Number); rev = rev_Integer (Number); printf("Reverse = %d\n", rev); return 0; } int rev_Integer (int Number) { int Reminder, rev = 0; while (Number > 0) { Reminder = Number %10; rev = rev *10+ Reminder; Number = Number /10; } return rev; }

Within this, When the compiler reaches to rev_Integer (Number) line in the main() program, then the compiler will immediately jump to the below function:
int rev_Integer (int Number)
We already explained the code LOGIC in the above example. Please refer to the While Loop Analysis. The last line ends with a return Reverse statement.
C Program to Reverse a Number Using Recursion
This c program allows us to enter any positive integer. Then it will reverse a number using Recursion.
#include <stdio.h> int Rev_Integer (int ); int main(void) { int n, rev = 0; printf("\nPlease Enter any value\n"); scanf("%d", &n); rev = Rev_Integer (n); printf("Reverse= %d\n", rev); return 0; } int Rev_Integer (int n) { static int Rem, rev = 0; if (n > 0) { Rem = n %10; rev = rev *10+ Rem; Rev_Integer (n /10); } return rev; }

In this program, When the compiler reaches to Rev_Integer (n) line in the main() program, the compiler will immediately jump to the below function:
int Rev_Integer (int n)
In this function, Rev_Integer (n / 10); statement will help to call the function Recursively with the updated value. If you miss this statement, it will terminate after completing the first line. For example, if Number = 459, then the output will be 9
Let’s see the If condition.
if (n > 0) will check whether the number is greater than 0. For Recursive functions, placing a condition before using the function recursively is crucial. Otherwise, we end up in infinite execution (Same as Infinite Loop).
Comments are closed.