zzuli oj 1167逆转数(指针专题)

时间:2023-03-09 16:53:25
zzuli oj 1167逆转数(指针专题)

Description

  任意给你一个整数,这个数可能很大(最长不超过100位),你能求出它的逆转数吗? 
  逆转数定义如下: 
  1.一个末尾没有0的整数,它的逆转数就是各位数字逆序输出; 
  2.一个负数的逆转数仍是负数; 
  3.一个末尾有0的整数,它的逆转数如同下例: 
  reverse (1200) = 2100 
  reverse (-56) = -65 
  要求定义并使用如下函数: 
  void reverse(char *str) 
  { 
  //函数求出str的逆转数并存入str。 
  }

Input

  输入一个长整数str,不超过100位,输入的整数不含前导0。

Output

  输出str的逆转数。输出占一行。

Sample Input

  -123456789000

Sample Output

  -987654321000
 #include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std; int main(int argc, char** argv)
{
char str[];
int i,flag=,count=;
gets(str);
/*输出负号*/
if(str[]=='-')
printf("-");
/*倒序输出*/
for(i=strlen(str)-;i>=;i--)
{
if(str[i]==''&&flag==)
{
count++;//用来计数0的个数
continue;//跳过
}
if(str[i]!=''||flag!=)
{
printf("%c",str[i]);
flag=;//标记尾数是否为0
} }
if(str[]!='-')
printf("%c",str[]);//最后输出第一个数
/*输出前面跳过的0*/
for(i=;i<=count;i++)
printf("");
return ;
}