Examples of C part 17 print reverse of the number

          Print reverse of a given                                 number
Program :
#include<stdio.h>
main()
{
  int dummy,n,rev=0,x;
  printf("Enter a number\n");
  scanf("%d",&n);
  dummy=n;
  while(n>0)
  {
    x=n%10;
    rev=rev*10+x;
    n=n/10;
  }
  printf("The reverse of %d is %d\n",dummy,rev);
}
Output:
Enter a number
234
The reverse of 234 is 432
Explanation:
  1. Here we did initialization for
    • dummy----->To store the entered value(i.e 'n') as you will come to know at the end of the program
    • n----------->To store number given by user.
    • rev----->To store the reverse of a number.It is initialized to zero
    • x---------->To store n%10.
  2. First of all we got a number 'n' from user and then stored it in a dummy variable called as 'dummy' for restoring the value.(remember this point).
  3. Now the main logic comes here:-
      • let the number 'n' be 321 and as 321>0,while loop gets executed
        1. then x=321%10--->which is 1.
        2. rev=0*10+1-------->1
        3. n=321/10--------->32
        4. The rev for the first loop execution is rev=1.
      • Now the number 'n' has become '32' and n>0,while loop executes for 2nd time
        1. then x=32%10--->which is 2.
        2. rev=1*10+2-------->12
        3. n=32/10--------->3
        4. The rev when loop executed second time is rev=12.
      • Now the number 'n' has become '3' and n>0,while loop executes for 3rd time
        1. then x=3%10--->which is 3.
        2. rev=12*10+3-------->123
        3. n=3/10--------->0
        4. The rev when loop executed third time is rev=123.
      • Now as the number in variable 'n' is 0 which is not n>0 then the loop terminates.Then the final reverse is '123'.
  4. So now I hope you understood why the dummy variable is used.It is because the value in 'n' becomes 0 at the end of the program so for restoring this value to print at the end we used 'dummy'(as from the 2nd point).
  5. Finally it prints the value in 'rev'.