Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
Algorithm to Reverse a Number in C
3.
Flowchart of C Program to Reverse a Number
4.
1. C Program to Reverse a Number Using While Loop
4.1.
C
4.2.
Input
4.3.
Output
5.
2. C Program to Reverse a Number Using For Loop
5.1.
C
5.2.
Input
5.3.
Output
6.
3. C Program to Reverse a Number Using recursion
6.1.
Algorithm 
6.2.
Pseudo Code
6.3.
Example
6.4.
C
6.5.
Output 
7.
4. C Program to Reverse a Number Using Function
7.1.
Example
7.2.
C
7.3.
Input
7.4.
Output
8.
Frequently Asked Questions 
8.1.
How to reverse a float number in C?
8.2.
Which algorithm is used to reverse a given number?
8.3.
What is the logic of reverse number in C?
8.4.
How to reverse a number in C without using reverse function?
9.
Conclusion
Last Updated: Jul 9, 2024
Easy

C Program to Reverse a Number

Author Mehak Goel
0 upvote

Introduction

Reversing a number implies that the value of the unit of a given number will become the nth digit value of the number if it is n digits long, and the tens digit number will become (n-1)th place value number and so on. It implies printing the digits of a specified number from the back to the front. For example, if the given number is 987, the reverse of that number is 789. 

C Program to Reverse a Number”

Now, before moving on, let us discuss the relevance of reverse a number. Sometimes we are stuck upon a code where we have to find the palindrome of a number. If you are unfamiliar with the concept of palindrome, then please note that a palindrome is a number that is the same even after its reversal. 

For example, number 4554 is a palindrome of 4554. So, in this case, it becomes mandatory for us to fetch all the possible values which contain palindrome numbers and hence here comes the need to find the reversal of the number.

Also read palindrome number in python.

Reverse of given number

Algorithm to Reverse a Number in C

#include <stdio.h>

int main() {
 int num, reversedNum = 0, remainder;

 // Input the number
 printf("Enter an integer: ");
 scanf("%d", &num);

 // Reverse the number
 while (num != 0) {
 remainder = num % 10; // Extract the last digit
 reversedNum = reversedNum * 10 + remainder; // Build the reversed number
 num = num / 10; // Remove the last digit
 }

 // Output the reversed number
 printf("Reversed number: %d\n", reversedNum);

 return 0;
}

This program takes an integer as input, iteratively extracts the last digit (remainder), builds the reversed number by multiplying the current reversed number by 10 and adding the remainder, and finally removes the last digit from the original number. This process continues until the original number becomes zero.

Flowchart of C Program to Reverse a Number

Flowchart to Reverse a Number


Also see, Binary to Hex ConverterShort int in C Programming and C Static Function.

Now, Let us learn to write a C program to reverse a number.

1. C Program to Reverse a Number Using While Loop

Reversing a number in C is really simple, the logic is elementary, which is that we take the rightmost digit of the number, add it to the reverse result number, multiply it by 10, and add the remainder, if any. Followed by the removal of the rightmost digit; this process goes on until the number becomes zero. 

Let’s understand this with the help of an example:

  • C

C

#include <stdio.h>
int main() {
int number, reverse = 0, temp; //temp is the remainder, and reverse is the result
printf("Enter Number to Reverse:");
scanf("%d", &number);

while (number != 0){ //processed until the number becomes zero
temp = number % 10; //getting the rightmost digit
reverse = reverse * 10 + temp;
number = number/10;
}
printf("Number after Reversing = %d", reverse);

return 0;
}
You can also try this code with Online C Compiler
Run Code

Input

Enter Number to Reverse:12345
You can also try this code with Online C Compiler
Run Code

Output

Number after Reversing = 54321
You can also try this code with Online C Compiler
Run Code

2. C Program to Reverse a Number Using For Loop

Reversing a number using a For Loop has similar logic to that of a While Loop; that is, we pop the rightmost digit of the number, multiply it by 10, and add it to the resultant reversed number along with the remainder, if any. Following is the code example of Reversing a Number using For Loop:

  • C

C

#include <stdio.h>
int main() {
int number, reverse = 0, temp;
printf("Enter the number to be reversed: ");
scanf("%d", &number);
for (; number != 0; number /= 10) { //As the number is already initialised, so not declared in for loop
temp = number % 10; //Getting the remainder, along with right most digit
reverse = reverse * 10 + temp;
}
printf("Result after Reversing = %d", reverse);
return 0;
}
You can also try this code with Online C Compiler
Run Code

Input

Enter the number to be reversed: 456789
You can also try this code with Online C Compiler
Run Code

Output

Result after Reversing = 987654
You can also try this code with Online C Compiler
Run Code

You can also read about dynamic array in c.

3. C Program to Reverse a Number Using recursion

A recursive function solves a problem by calling a copy of itself to work on a smaller problem. Each time a function calls itself, a simpler version of the original problem is shown. All these smaller problems converge on a base case. 

The idea is to use recursion to perform the task for a single digit of the number, and let Recursion handle all the numbers on it’s own.

Algorithm 

  • Take the number N as input from the user. 
  • Create a function for reversing a number that accepts the input N as its parameter.
  • Initialise the reverse number to 0.
  • Check if N is greater than 0, and update the already existing reverse number by multiplying it by 10.
  • And then add the reverse number with the last digit of the number N by taking modulo 10.
  • Keep on calling the recursive function until N becomes less than 0.
  • Finally, return the reverse number and print it as output. 

Pseudo Code

Input=N   
Reverse (int N)     // Recursive function accepting input as its parameter
rev_num=0
// While input N is greater than 0:
rev_num=rev_num*10
rev_num=rev_num + N modulo 10
Reverse (N/10)
print(rev_num)

Example

Here, in this example, we are going to reverse a number using recursion. In this example, we will create a recursive function ‘reverse’ which will take an integer and will reverse the given number.

  • C

C

#include <stdio.h>;

int reverse(int num)
{
   static int revNum = 0;
   if (num>0)
   {revNum = revNum*10;
    revNum += (num % 10);
    reverse(num / 10);   
    return revNum;
   }
   else
   return 0;
}
int main()
{
   int num=1289;
   printf(reverse(num));

   return 0;
}
You can also try this code with Online C Compiler
Run Code

Output 

9821


In the above code, we have taken the function reverse which takes an integer number as input, also we have already given the number ' 1289' to the function. We checked if the number is greater than zero, then broke down the given number and stored the output in the variable "revNum" after this we returned the variable "revNum".The output of the above code is "9821".

4. C Program to Reverse a Number Using Function

To reverse a number using a function, we must first create a function, for example reversing_a_number(), that takes the number as a parameter. Further, the same approach similar to For Loop or While Loop can be implemented in the function. 

Further, in the main () function, the number is taken as an input, a function is called on that number, and the return result of that function is stored in another variable, which will be the final output of the code.

Example

  • C

C

#include <stdio.h>
int main() {
int number, reverse;
printf("Enter a Number to reverse: ");
scanf("%d", &number);
reverse = reversing_a_number(number); //Function is being called, with number as the parameter
printf("Number after Reversing = %d", reverse);
return 0;
}
int reversing_a_number(int number) { //Function is implemented for reversing a number
int reverse = 0, temp; //reverse is the result, temp is the remainder
while (number != 0) {
temp = number % 10; //Same logic as of While/For Loop
reverse = reverse * 10 + temp;
number /= 10;
}
return reverse;
}
You can also try this code with Online C Compiler
Run Code

Input

Enter a Number to reverse: 34635635
You can also try this code with Online C Compiler
Run Code

Output

Number after Reversing = 53653643
You can also try this code with Online C Compiler
Run Code


Now that you have learnt the approaches, try to solve the reverse number problem yourself.

You can also read about Palindrome Number in Python here.

Frequently Asked Questions 

How to reverse a float number in C?

To reverse a float number in C, convert it to a string using `sprintf`, reverse the string, then convert it back to a float using `sscanf`. This process handles the digits and decimal point correctly for the reversal.

Which algorithm is used to reverse a given number?

The algorithm to reverse a number is to get the digit at the extreme right, multiply it by 10, and pop it out of the original number. This process needs to be followed until every digit of that number is traversed. 

What is the logic of reverse number in C?

The logic is pretty simple to reverse a number, that is to get the extreme right digit of that number, multiply it with 10, add a remainder if any, and place it in the new reversed number. This process needs to be followed until the number is reduced to zero.

How to reverse a number in C without using reverse function?

Reversing a function in C without using any reverse function is absolutely possible; this can be done using a While or For Loop. The primary condition in the loop should be that it should run until the number is reduced to zero. 

Conclusion

In this article, we studied everything that is needed to know about a C program to reverse a number. This is the most optimal and widely used approach for reversing the digits of a number. 

The process is almost the same in every programming language, and therefore, once you know the logic of the program, it will be straightforward for you to implement it. 

Also check out - Rod Cutting Problem ,include stdio h

Now that you know how to implement the theory of reversing a number, you can try practising this problem on Coding Ninjas Studio to evaluate yourself. 

Live masterclass