不用数组输出一个数的逆序,这个程序问题所在

 //逆序输出一个数
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int reverse(int number);
int main()
{
    int number;
    printf("Please input a number: ");
    scanf("%d",&number);
    int new_number = reverse(number);
    printf("%d\n",new_number);
    system("pause");
    return 0;
}

int reverse(int number)
{
    int number_new = 0;
    int size_of_number = 0;
    int temp = number;
    while (temp / 10)
    {
        size_of_number++;
        temp /= 10;
    }
    for (int i = 1,j = size_of_number; i <= size_of_number, j >= 1; i++, j--)
    {
        number_new += (int)pow((double) 10,i-1)*(number % (int)pow((double)10,j));  
        number -= (int)pow((double)10,j) * (number % (int)pow((double)10,j));
    }
    return number_new;
}

int reverse(int number){
int tem = number;
int result = 0;
while ( tem > 0) {
result *= 10;
result += tem % 10;
tem /= 10;
}
return result;
}

你的方法
int reverseF(int number)
{
int number_new = 0;
int size_of_number = 0;
int temp = number;

while (temp){
    size_of_number++;
    temp /= 10;
};
for (int i = 1,j = size_of_number; i <= size_of_number, j >= 1; i++, j--)
{
    double f = pow((double) 10,i-1);
    double s = (number / (int)pow((double)10,j-1));
    number_new += (int)s * f;
    number -= (int)pow((double)10,j-1) * (number / (int)pow((double)10,j-1));
}
return number_new;

}

看楼上回答!

 int reverse(int num)
{
    int tmp, reverse = 0;
    while( num ) 
    {
        reverse *= 10;     //不为零,则乘以10,进一位
        tmp = num % 10;    //取个位
        reverse += tmp;
        num /= 10;
    }
    return reverse;
}