判断一个INT数字是否回文?

我个人认为下面的逻辑是没有问题的,可能在某一个参数上面出现了问题,或者是数值间的转换,但我没有办法找出来。
#include
#include

int main()
{
int number,judge,floor,ceil,a; //若为回文a返回1,否则返回0,
float length=1; //length为判断数字位数

scanf("%d",&number);

judge=number;

while((judge=judge/10)>10) length++;

do
{
    ceil=(int)number/pow(10.0,length);
    floor=(int)number%10;

    number=number%pow(10.0,length)/10;

    if(ceil==floor) a=5;

    length-=2;

    if(length==1||length==0) break;
    printf("%d %d %d %d ",ceil,floor,number,a);

}
while(a);

printf("%d",a);

}

CSDN移动问答

if(ceil==floor) a=1;
else a = 0;

length-=2;

if(length<=0) break;