编程思路要点:
1) 测出整数位数n;
2) 取出每一位数字;
3) 计算出倒序正整数;
4) 把正负号加上.
注意, 倒序后可能超出原来的类型范围, 所以返回类型比输入类型范围大.
以下是函数例子:
DINT IReverse(int x)
{
int xt;
DINT y;
USINT i,n,z[8];
//1.获得整数位数n
n=1;
xt=abs(x);
do
{
xt=xt/10;
n=n+1;
}while (xt>=10);
//2.提取每1位数字
xt=abs(x);
for(i=n;i>0;i--)
{
z[i]=xt/pow(10,i);
xt= xt % (UINT)pow(10,i);
}
z[0]=xt % 10;
//3.计算反转后的整数
y=0;
for(i=0;i<n;i++)
{
y= y+z[i]*(INT)pow(10,(n-1-i));
}
//4.当输入为负数时的处理
if((x<0)&&(y>0))
{
y= -1*y;
}
Return(y); // y必须比x位数多, 否则反转后,可能超出整数范围.
}