整型反序

简要描写叙述:给出一个不多于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 "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)
{

    if(iInput>99999||iInput<-99999)
		return -1;

	iNum=0;
	iOutput=0;
    int temp=0;
    //输入为0
	if(iInput==0)
	 {
	   iNum=1;
       strRst[0]='0';
	   strRst[1]='';
	   iOutput=0;
	 }
	 else if(iInput>0)
	 {
	    int temp=iInput;
       	while(temp>0)
	    {
	     iOutput=iOutput*10+temp%10;
         iNum++;
	     temp=temp/10;
	     }
	  
		  int t=0;

		  temp=iOutput;
		 while(temp>0)
		 {
		   strRst[t++]=temp%10+'0';
		   strRst[t++]=' ';
		   temp=temp/10;

		 }
		 strRst[--t]='';
	 }
	 else if(iInput<0)
		{
			iInput=-iInput;

		 int temp=iInput;
		  while(temp>0)
		  {
		   iOutput=iOutput*10+temp%10;
	       iNum++;
		   temp=temp/10;
		  }
		  iOutput=-iOutput;
		 
		  int t=1;

		  temp=-iOutput;

		 strRst[0]='-';
		 while(temp>0)
		 {
		   strRst[t++]=temp%10+'0';
		   strRst[t++]=' ';
	      temp=temp/10;
		 }
		strRst[--t]='';
	}

	return 0;
}






原文地址:https://www.cnblogs.com/claireyuancy/p/6940104.html