//逆序输出一个数
#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;
}