#include <stdlib.h>
#include <stdio.h>
#include "oj.h"
/*
功能:
给出一个不多于5位的整数,
要求:
1、求出它是几位数
2、分别输出每一位数字
3、按逆序输出各位数字,例如原数为321,应输出123
输入:
整型 iInput,位数不大于5的整数
输出:
整数位数 iNum
空格间隔输出结果 strRst
逆序整数 iOutput
返回:
0 成功
-1 输入无效
*/
int ProcessX(int iInput, int& iNum, char * strRst, int& iOutput)
{
int temp=0,i=0,blk=0;
int neg_flag=0,end_0_num=0;
int imod=iInput%10;
if(iInput/10000>10||iInput/10000==10)
{
return -1;
}
if(iInput/10000<-10||iInput/10000==-10)
{
return -1;
}
//输入为0
if(iInput==0)
{
*strRst='0';
iOutput=0;
iNum=0;
return 0;
}
//输入为负数
if(iInput<0)
{
iInput*=(-1);
neg_flag=1;
}
//输入为正数
//尾数为0
if(imod==0)
{
end_0_num++;
iNum++;
iInput/=10;
imod =iInput% 10;
}
while (iInput >0)
{
temp=temp*10+imod;
iInput/=10;
imod = iInput % 10;
if(imod==0 && iInput>0)
{
end_0_num++;
iInput/=10;
imod =iInput% 10;
}
iNum++;
}
iOutput=temp;
imod =temp% 10;
while (temp >0)
{
if(neg_flag)
{
strRst[i++]='-';
}
strRst[i++]=imod+48;
blk++;
if(blk<iNum-end_0_num)
{
strRst[i++]=' ';
}
temp/=10;
imod = temp % 10;
}
if(end_0_num>0)
{
for(int k=0;k<end_0_num;k++)
{
strRst[i++]=' ';
strRst[i++]='0';
}
}
strRst[i]='\0';
return 0;
}