2 z530650681 z530650681 于 2014.08.03 12:16 提问

判断一个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移动问答

1个回答

icewolf13
icewolf13   2014.08.04 10:52

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

length-=2;

if(length<=0) break;

z530650681
z530650681 找出了,原因是因为POW返回的是浮点型,所以要在前面强制转换(INT),否则得到的数据不对
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片