Program to reverse a number. small error with it..
hi! heres my program:
#include <stdio.h>
#include <math.h>
#define NEWLINE '\n'
int main(void){
int num;
int reverse(int n);
printf("Enter a positve integer: \n");
scanf("%i \n", &num);
printf("The reverse number is: %i \n", reverse(num));
return 0;
}
int reverse(int n)
{
int rev_num = 0, k = 0,i =2, mult = 1;
int rev_digit, digitcount;
int digits(int r);
digitcount = digits(n);
while((k <= digitcount) && (digitcount != 0))
{
rev_digit = n % 10;
k++;
mult = pow(10, (digitcount - k));
rev_num = rev_num + (rev_digit * mult);
n = n / 10;
}
return rev_num;
}
int digits(int r){
int count = 0;
while(r != 0)
{
r = r/10;
count++;
}
return count;
}
Output:
Enter a postive number:
8002033 /* for example */
2
/* this is where the problem occurs. after i enter 8002033, the program ask for another number, it doesnt matter what i enter, i just need to enter something */
The reverse is 3302008
/* this part seems correct */
So can anyone help me? i dont know why they need me to enter another number after 8002033!! :confused: