C语言的问题,到底错在哪了?输入有的数字答案是对的,输入有的数字答案就差了1。。。

2025-05-22 21:37:27
推荐回答(1个)
回答1:

程序太复杂了,修改如下:
long reverse(long number)
{
long sum;

sum=0;
while( number!=0 )
{
sum=sum*10+number%10;
number/=10;
}
return sum;
}

你的代码中的问题,估计是pow()的返回值是double,在进行隐式转换成long时,产生了数据丢失!