In this blog post, we learn how to write a C Program to reverse the digits of a number? How to find reverse of any number using loop in C program. Logic to find the reverse of a number in C programming. How to write C program to reverse a number without using loop. How to write C program to reverse a number using array. How to write C program to reverse a number using function. Let’s see an example,
Input : num = 12345 Output : 54321 Input : num = 876 Output : 678
Algorithm to reverse number:
- Ask the user to enter any number.
- Declare and initialize another variable reversed with 0, where reversed an integer variable.
- Get the last digit of the given number by performing the modulo division (%) and store the value in last_digit variable, likey last_digit= number % 10.
- Multiply reversed by 10 and add last_digit, like reversed = reversed*10 + last_digit.
- Divide numbered by 10, like numbered/10.
- Repeat the steps 3 to 5 till numbered is not equal to (or greater than) zero.
Flow chart to find reverse a number:
C Program to find reverse of a number:
#include <stdio.h> int main() { int number, reversed = 0; // Input a number from user printf("Enter any number = "); scanf("%d", &number); //Repeat the till number becomes 0 while(number != 0) { /* * Increase place value of reversed and * add last digit to reversed */ reversed = (reversed * 10) + (number % 10); // Remove last digit from number number /= 10; } printf("Reverse = %d", reversed); return 0; }
Output;
Enter any number = 4562
Reverse = 2654
Code Explanation:
number = 4562 reversed = 0 reversed = reversed *10 + number %10 = 2 number = number/10 = 456 reversed = reversed *10 + number%10 = 20 + 6 = 26 number = number/10 = 45 reversed = reversed *10 + number%10 = 260 + 5 = 265 number = number/10 = 4 reversed = reversed *10 + number%10 = 265 + 4 = 2654 number = number/10 = 0
C Program to find reverse of a number using a function:
#include <stdio.h> //function to reverse a number int reversDigits(int number) { int reversed = 0; while(number > 0) { reversed = reversed*10 + number%10; number = number/10; } return reversed; } int main() { int number,reversed = 0; //Input a number from user printf("Enter any number = "); scanf("%d", &number); reversed = reversDigits(number); printf("Reverse = %d", reversed); return 0; }
Output;
Enter any number = 1234
Reverse = 4321