C Program to Reverse a Number

To understand this example, you should have the knowledge of the following C programming topics:


Reverse an Integer

#include <stdio.h>

int main() {

  int n, reverse = 0, remainder;

  printf("Enter an integer: ");
  scanf("%d", &n);

  while (n != 0) {
    remainder = n % 10;
    reverse = reverse * 10 + remainder;
    n /= 10;
  }

  printf("Reversed number = %d", reverse);

  return 0;
}

Output

Enter an integer: 2345
Reversed number = 5432

This program takes integer input from the user. Then the while loop is used until n != 0 is false (0).

In each iteration of the loop, the remainder when n is divided by 10 is calculated and the value of n is reduced by 10 times.

Inside the loop, the reversed number is computed using:

reverse = reverse * 10 + remainder;

Let us see how the while loop works when n = 2345.

n n != 0 remainder reverse
2345 true 5 0 * 10 + 5 = 5
234 true 4 5 * 10 + 4 = 54
23 true 3 54 * 10 + 3 = 543
2 true 2 543 * 10 + 2 = 5432
0 false - Loop terminates.

Finally, the reverse variable (which contains the reversed number) is printed on the screen.

Did you find this article helpful?