整型反序

整型反序
描述: 

简要描述:给出一个不多于5位的整数, 进行反序处理

要求:

1、求出它是几位数

2、分别输出每一位数字

3、按逆序输出各位数字,例如原数为321,应输出123(仅数字间以空格间隔, 负号与数字之间不需要间隔)

 

例如:输入:12345

输出:5

1 2 3 4 5

54321

 

注意:如果是负数,负号加在第一个数字之前, 与数字没有空格间隔

比如

       输入:-12345

输出:5

-1 2 3 4 5

-54321

 

 

函数原型:

/*
输入:
 iInput: 位数不大于5的整数

输出:
 iNum:   整数位数 
 strRst: 空格间隔输出结果
 iOutput:逆序整数

返回:
 0  成功
 -1 输入无效
*/

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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值