Wix
Wix

Reputation: 125

Reverse Number Algorithm Bug

I'm trying to write a program to reverse a number.

Here's my code:

int num, rev, rem;
printf("Input a number: ");
scanf("%d", &num);
while (num != 0)
{
    rem = num % 10;
    num = (num - rem) / 10;
    rev = rev * 10 + rem;
}
printf("\n\nThe reverse number form is: %d.\n\n", rev);
getch();

Here's the problem:

Input a number: 123
The reverse form is 8321.

I don't know where the '8' comes from. Can someone help?

Upvotes: 0

Views: 517

Answers (2)

Cyril Fougeray
Cyril Fougeray

Reputation: 131

Don't you want

rev = num * 10 + rem;

Because as said before, rev isn't initialized..

Upvotes: 0

P0W
P0W

Reputation: 47784

Initialize rev to zero before use

Statement rev = rev * 10 + rem; uses value of rev that is garbage.

int rev =0 ;

Upvotes: 3

Related Questions