整型反序
描述: | 简要描述:给出一个不多于5位的整数, 进行反序处理 要求: 1、求出它是几位数 2、分别输出每一位数字 3、按逆序输出各位数字,例如原数为321,应输出123(仅数字间以空格间隔, 负号与数字之间不需要间隔)
例如:输入:12345 输出:5 1 2 3 4 5 54321
注意:如果是负数,负号加在第一个数字之前, 与数字没有空格间隔 比如 输入:-12345 输出:5 -1 2 3 4 5 -54321
函数原型: /* 输出: 返回: int ProcessX(int iInput, int& iNum, char * strRst, int& iOutput) |
#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 i=0;
int n=iInput;
char a[6]={' '};
int flag=0;
int j=0;
//计算位数
char *str;
str=strRst;
int tem;
if(iInput<0)
{flag=1;
n=-1*iInput;
}
if(n==0)
{ iNum=1;
*strRst='0';
iOutput=0;
return 0;
}
while(n)
{
i++;
n=n/10;
}
iNum=i;
if(i>5)
return -1;
if(iInput<0)
{ flag=1;
n=-1*iInput;
}
else n=iInput;
while(n)
{
tem=n%10;
a[j++]=tem+'0';
n=n/10;
}
if(flag==1)
{
*str='-';
str++;
}
for(j=0;j<iNum;j++)
{
*str=a[iNum-1-j];
//printf("%c",*strRst);
if((iNum-j-1)!=0)
{
str++;
*str=' ';
}
str++;
}
*str='\0';
//for(j=0;j<iNum;j++)
//printf("%d\n",a[j]);
if(iInput<0)
iOutput=-1*atoi(a);
else iOutput=atoi(a);
return 0;
}