我个人认为下面的逻辑是没有问题的,可能在某一个参数上面出现了问题,或者是数值间的转换,但我没有办法找出来。
#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);
}