Function error

Hello everyone,I got incorrect result with this function. Could you help me?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int reverseTheNumber(int number)
{
    int rem;
    int rnum;

    while (number!=0)
    {
     rem=number%10;
     rnum=rnum*10+rem;
     number/=10;
    }

return rnum;
}
initialize rnum...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;

int reverseTheNumber( int number )
{
   int rnum = 0;            // <=== initialise

    while ( number != 0 )
    {
       int rem = number % 10;
       rnum = rnum * 10 + rem;
       number /= 10;
    }

    return rnum;
}

int main()
{
   int number = 1234; 
   cout << number << " reversed is " << reverseTheNumber( number ) << '\n';
}



Apart from not initialising rnum your code looks OK.

Note, there may be some conceptual issues if your number ends in 0; e.g. does the reverse of 12340 look like 04321 or just 4321?
Last edited on
Thanks for the help! I will use this function to find sheldon's perfect number so I am not looking for the numbers ends with 0.
Topic archived. No new replies allowed.