Reversing a number is a common task in programming that involves reversing the order of its digits. In this article, we will explore how to write a C program to reverse a number, along with the code, results, and alternative approaches to achieve the same result.
Code to Reverse a Number in C:
#include <stdio.h>
int reverseNumber(int number) { int reversedNumber = 0;
while (number != 0) {
int remainder = number % 10;
reversedNumber = reversedNumber * 10 + remainder;
number /= 10;
return reversedNumber;
}
int main() {
int number;
printf("Enter a number: "); scanf("%d", &number);
int reversedNumber = reverseNumber (number);
printf("Reversed number: %d\n", reversedNumber);
return 0;}
Explanation:
1. We define a function `reverseNumber()` that takes an integer as an input and returns the reversed number.
2. Inside the function, we initialize a variable `reversedNumber` to store the reversed number.
3. We use a `while` loop to iterate until the number becomes zero.
4. In each iteration, we find the remainder of the number when divided by 10 using the modulo operator `%`.
5. We then update the `reversedNumber` by multiplying it by 10 and adding the remainder.
6. We divide the number by 10 to remove the last digit in each iteration.
7. Finally, we return the `reversedNumber` once the loop is complete.
8. In the `main()` function, we prompt the user to enter a number, read it using `scanf()`, and store it in the `number` variable.
9. We call the `reverseNumber()` function with `number` as the argument and store the result in `reversedNumber`.
10. We print the reversed number using `printf()`.
Alternate Approaches:
While the above code efficiently reverses a number, there are alternative approaches that can achieve the same result. Here are a few such methods:
Using an Array to reverse a Number in C:
– Convert the number into a string or character array.
– Reverse the order of characters in the array.
– Convert the reversed array back to an integer.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int reverseNumber(int number) {
char dataFlair[20];
sprintf(dataFlair, "%d", number);
int length = strlen(dataFlair);
for (int i = 0; i < length / 2; i++)
{ char temp = dataFlair[i];
}
dataFlair[i] = dataFlair[length - i - 1]; dataFlair[length - i - 1] = temp;
return atoi(dataFlair);
}
int main() {
int number;
printf("Enter a number: "); scanf("%d", &number);
int reversedNumber = reverseNumber (number);
printf("Reversed number: %d\n", reversedNumber);
return 0;}
C Program to reverse a number Using Recursion:
– Divide the number by ten recursively until it becomes zero.
– In each recursive call, extract the last digit of the number.
– Concatenate the digits to form the reversed number.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int reverseNumber(int number) { char dataFlair[20];
printf(dataFlair, "%d", number);
int length = strlen(dataFlair);
for (int i = 0; i < length / 2; i++)
{ char temp = dataFlair[i];
}
dataFlair[i] = dataFlair[length - i - 1];
dataFlair[length - i - 1] = temp;
return atoi(dataFlair);
}
int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);
int reversedNumber = reverseNumber (number);
printf("Reversed number: %d\n", reversedNumber); return 0;
}
C Program to reverse a number Using Mathematical Operations:
– Calculate the number of digits in the given number.
– Extract the last digit using modulo and divide the number by 10.
– Multiply the extracted digit by the power of 10 based on its position.
– Add the extracted digit to the reversed number.
– Repeat the above steps until all digits are reversed.
#include <stdio.h>
#include <math.h>
int reverseNumber(int number) {
int reversedNumber = 0;
int numDigits = log10(number) + 1;
while (number != 0) {
int remainder = number % 10;
reversedNumber += remainder * pow(10, numDigits - 1);
number /= 10;
numDigits--;
}
return reversedNumber;
}
int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);
int reversedNumber = reverseNumber (number);
printf("Reversed number: %d\n", reversedNumber);
return 0;
}
These alternative approaches provide different ways to reverse a number using arrays, recursion, and mathematical operations. But the end result is the same for all…
Output
Reversed number: 7654321
Conclusion
Reversing a number is a fundamental programming task that can be approached using various techniques. The C program provided in this article demonstrates an efficient method to reverse a number using a loop. Additionally, we explored alternative approaches involving arrays, recursion, and mathematical operations. Choosing the right approach depends on the requirements and constraints of the specific scenario.
